首页 程序员大本营 98sky.com 程序员问答大本营 98sky.com.
Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


5 questions online user: 55

675
votes
answers
20 views
+10

如何使用YUM列出包的內容?

我知道如何使用rpm列出包的內容(rpm -qpil package.rpm)。但是,這需要知道.rpm文件在文件系統上的位置。更優雅的解決方案是使用包管理器,在我的例子中是YUM。如何使用YUM實現這一目標?

0
votes
answers
28 views
+10

Oozie的加入時分叉的一個動作是成功

0

我有具有兩個動作watcher1和watcher2叉開始Oozie的工作流程。只要其中的一個即watcher1或watcher2成功,我就需要立即加入。Oozie的加入時分叉的一個動作是成功

有什麼在Oozie的,我可以做,以實現上述提到的場景。

0
votes
answers
18 views
+10

C#中的多線程無法啓動

-1

在我的Windows窗體應用程序中,我有一種方法可以搜索從包含大約150,000字的SortedDictionary在搜索框中輸入的文本,然後將結果添加到列表框中。在我的searchBox_TextChanged事件處理程序中,我正在創建一個新線程並啓動它,但根本不起作用。在單線程版本中,我的應用程序正在運行,但速度有點慢。我希望搜索更快。C#中的多線程無法啓動

private void searchAllWords() 
{ 
    if (searchBox.Text.Length > 0) 
    { 
     var match = allWords.Keys.Where(x => x.StartsWith(searchBox.Text.Trim().ToLower())).ToArray(); 
     listBoxWords1.Items.AddRange(match);     
    } 
} 

private void searchBox_TextChanged(object sender, EventArgs e) 
{ 
    listBoxWords1.Items.Clear(); 
    Thread searchThread = new Thread(new ThreadStart (searchAllWords)); 
    searchThread.Start();    
}   

我知道某個地方線程應該被殺死,但是在哪裏以及如何?

0
votes
answers
29 views
+10

如何使lombok註釋@NotNull在IntelliJ中工作?

0

由於某些原因,lombok @NotNull註解在我的IntelliJ IDEA的Maven項目中不起作用。如何使lombok註釋@NotNull在IntelliJ中工作?

我有一個maven lombok依賴版本1.16.16。 enter image description here

這是我的進口報表。

enter image description here

正如你看到的其他龍目島的依賴正常工作。 我發現@NotNull註釋具有保留策略CLASS和其他註釋(@Data,@NoArgsConstructor等)具有保留策略的源。任何想法如何解決這個問題?

+0

你已經安裝了[龍目島插件](https://plugins.jetbrains.com/plugin/6317-lombok-plugin)? – zyexal

+0

刷新/更新maven項目,啓用intellij想法註釋處理 –

0
votes
answers
19 views
+10

PyQt4:在一組窗口小部件上添加一個QSrollArea

0

我正在編寫一個與stackedwidgets和QGridLayout的接口,其中有一些窗口小部件對於某些動態添加...我想爲每組添加一個QSrolledArea窗口小部件(請參閱附加的屏幕截圖,其中顯示了可以隨時添加的窗口小部件組),但我不知道如何,能幫助我嗎?PyQt4:在一組窗口小部件上添加一個QSrollArea

... 

def ajouter_ref_artistique(self) : 
    ''' 
    ''' 
    # 
    r = len(self.liste_ref_artistiques) 
    #if r >= 0 : self.label_annonce_vocab.hide() 
    # Création des QTextEdit 
    self.dico_chem_ref_art[r] = QTextEdit() 
    self.dico_com_ref_art[r] = QTextEdit() 
    self.dico_chem_ref_art[r].setMaximumWidth(170) 
    self.dico_chem_ref_art[r].setMinimumWidth(170) 
    self.dico_chem_ref_art[r].setMaximumHeight(84) 
    self.dico_chem_ref_art[r].setMinimumHeight(84) 
    self.dico_com_ref_art[r].setMaximumWidth(398) 
    self.dico_com_ref_art[r].setMinimumWidth(398) 
    self.dico_com_ref_art[r].setMaximumHeight(84) 
    self.dico_com_ref_art[r].setMinimumHeight(84) 
    # Création des boutons de chargement 
    self.dico_bout_charg_ref_art[r] = QPushButton(u"Ouvrir ref {}".format(r+1)) 
    ''' 
    # Conditions de redimensionnement 
    if r > 5 : 
     self.dico_vocab_mot[r].setMaximumHeight(34) 
     self.dico_vocab_mot[r].setMinimumHeight(34) 
     self.dico_vocab_def[r].setMaximumHeight(34) 
     self.dico_vocab_def[r].setMinimumHeight(34) 
    ''' 
    # Répartition dans la grille 
    self.grille_3_stack_5.addWidget(self.dico_chem_ref_art[r], r, 0) 
    self.grille_3_stack_5.addWidget(self.dico_com_ref_art[r], r, 1) 
    self.grille_3_stack_5.addWidget(self.dico_bout_charg_ref_art[r], r, 2) 
    # Ecriture des n°s de lignes dans la partie mots de vocabulaire 
    self.dico_chem_ref_art[r].setText(str(r+1)+'. ') 
    # Les données sont introduites dans une liste 
    self.liste_ref_artistiques.append([self.dico_chem_ref_art[r], self.dico_com_ref_art[r], self.dico_bout_charg_ref_art[r]]) 
    # ===================================================== 
    # Signaux 
    # ---------- Récup des données textuelles 
    self.dico_chem_ref_art[r].textChanged.connect(self.changements_phase_5) 
    self.dico_com_ref_art[r].textChanged.connect(self.changements_phase_5) 
    # ---------- Récup du libellé du bouton sélectionné par l'utilisateur 
    self.dico_bout_charg_ref_art[r].released.connect(self.libelle_bouton_ref_art) 
    # ===================================================== 

def supprimer_ref_artistique(self) : 
    ''' 
    ''' 
    row = len(self.liste_ref_artistiques) - 1 
    if row >= 0: 
     for column in range(self.grille_3_stack_5.columnCount()): 
      item = self.grille_3_stack_5.itemAtPosition(row, column) 
      if item is not None: 
       item.widget().deleteLater() 
     del self.liste_ref_artistiques[row] 
     del self.dico_chem_ref_art[row] 
     del self.dico_com_ref_art[row] 
     del self.dico_bout_charg_ref_art[row] 

def changements_phase_5(self) : 
    """ 
    """ 
    self.liste_ref_artistiques_finale = [[unicode(refart[0].toPlainText()), unicode(refart[1].toPlainText()), unicode(refart[2])] for refart in self.liste_ref_artistiques] 

    print 
    print "self.liste_ref_artistiques_finale :" 
    print 
    print self.liste_ref_artistiques_finale 
    print 

def libelle_bouton_ref_art(self) : 
    ''' 
    Sélectionner l'id du bouton pressé en vue de 
    l'affichage du chemin de l'image sélectionnée 
    dans le QTextEdit dédié 
    ''' 

    # 
    message_bouton_ref_art = self.sender() 

    # Le texte du bouton (par ex pour le bouton n°2) est 
    # de la forme : Ouvrir ref 2 
    texte_bouton = message_bouton_ref_art.text() 

    # On ne sélectionne que le texte comprenant le numéro 
    # du bouton 
    numero_bouton = texte_bouton.right(2) # Lecture à partir de la droite 

    # Si il y a un espace ds la sélection, c'est à dire, 
    # par exemple, pour le 3ème bouton on obtiendra " 3", 
    # ... si il y 10 boutons, on aura "10" (on se laisse 
    # la possibilité de pouvoir sélectionner de 1 à 99 
    # boutons) 
    if numero_bouton[0:1] == " ": numero_bouton = numero_bouton[1:2] 

    # Le numéro du bouton prend le type integer 
    numero_bouton = int(numero_bouton) 

    # Attribution de l'indice du bouton 
    i = numero_bouton - 1 

    # ===================================================== 
    # Signal 
    # ---------- Affichage des images/vignettes et chemins images 
    self.dico_bout_charg_ref_art[i].clicked.connect(lambda: self.ouvrir_image_boite_ref_art(i)) 
    # ===================================================== 

def ouvrir_image_boite_ref_art(self, n) : 
    ''' Fonction pour la boîte de dialogue d'ouverture 
    pour charger les différentes oeuvres (références artistiques) ''' 

    # La boîte 
    ouv_fichier = QFileDialog.getOpenFileName(self, 'Ouvrir une image', os.path.expanduser('~'), 'Images (*.jpg *.jpeg *.JPG *.JPEG *.png *.gif)') 

    # Récup du chemin et nom de fichier 
    chemin_fichier_ref_art = unicode(ouv_fichier) 

    # === Redimensionnnement de l'image pour affichage dans le QTextEdit ====== 
    # Largeur de la future vignette 
    nouv_w_1 = 120 
    # Ouverture de l'image 
    obImg_1 = Image.open(chemin_fichier_ref_art) 
    # Recup dimensions de l'image 1) 
    w_1, h_1 = obImg_1.size 
    # Calcul du ratio de l'image 1) 
    ratio_1 = float(w_1)/float(h_1) 
    # Calcul de future hauteur avec les dimensions donnees par l'utilisateur 
    calcHauteur_img_1 = int(float(nouv_w_1)/ratio_1) 
    # ========================================================================= 

    # Affichage de l'image dans le QTextEdit 
    self.dico_chem_ref_art[n].setHtml('<center><img src="{}" width="{}" height="{}" title="{}" /></center><h6><b>{}</b></h6>'.format(chemin_fichier_ref_art, nouv_w_1, calcHauteur_img_1, chemin_fichier_ref_art, chemin_fichier_ref_art)) 

    # La liste finale des données est réactualisée avec les 
    # nouvelles données (le chemin et nom de l'image chargée) 
    del self.liste_ref_artistiques_finale[n][0] 
    self.liste_ref_artistiques_finale[n].insert(0, chemin_fichier_ref_art) 

整個代碼是在這裏:

https://pastebin.com/igVv6dcw

連接