2016-11-17 11 views
-1

pythonとpyQtの使い方を学ぼうとしています。 私はQtcreatorでウィンドウを作ってからpyuic4を使いました。また、Rubanというクラスを作成しました。これは私のウィンドウインターフェイスで使っています。私の窓にはnouveauRubanというボタンがあります。このボタンをクリックするとクラスRubanからオブジェクトを作成したいと思います。他のオブジェクトでPyQt4ウィンドウを使用するためのメインスクリプトを作成

私のコードが間違っていることは知っていますが、問題はmainTNの最初の部分である__init__にある可能性がありますか?

# -*- coding: utf-8 -*- 

import sys 
from PyQt4.QtCore import * 
from PyQt4.QtGui import * 
from mainwindow import Ui_MainWindow 
from Ruban import Ruban 

class mainTM(QMainWindow, Ui_MainWindow): 
    def __init__(self, parent=None): #, parent=None ?? 
     super (mainTM, self).__init__(self, parent) #(parent) ?? 
     self.createWidgets() 
     self.nouveauRuban.connect(nouveauRuban, QtCore.SIGNAL(_fromUtf8("clicked()")), self.nvRuban) 

    def nvRuban(self): 
     self.ruban=Ruban() 
     self.ruban.info_ruban() 

    def createWidgets(self): 
     self.ui=Ui_MainWindow() 
     self.ui.setupUi(self) 


if __name__== "__main__": 
    app=QApplication(sys.argv) 
    myapp=mainTM() 
    myapp.show() 
    sys.exit(app.exec_()) 

答えて

1

は再ですすべての問題を修正するスクリプトの書き込み:

import sys 
from PyQt4.QtCore import * 
from PyQt4.QtGui import * 
from mainwindow import Ui_MainWindow 
from Ruban import Ruban 

class mainTM(QMainWindow, Ui_MainWindow): 
    def __init__(self, parent=None): 
     super(mainTM, self).__init__(parent) 
     self.setupUi(self) 
     self.nouveauRuban.clicked.connect(self.nvRuban) 

    def nvRuban(self): 
     self.ruban = Ruban() 
     self.ruban.info_ruban() 

if __name__== '__main__': 

    app = QApplication(sys.argv) 
    myapp = mainTM() 
    myapp.show() 
    sys.exit(app.exec_()) 
1

あなたがスロットに信号を接続している場合は、デコレータを使用してそのスロットを定義する必要があります。

@QtCore.pyqtSlot() 
def nvRuban(self): 
    self.ruban=Ruban() 
    self.ruban.info_ruban() 

そして、それを接続します。ここでは

self.nouveauRuban.clicked.connect(nvRuban) 
+0

デコレーションatorはまったく違いはありません。それは間違っていた接続です。 – ekhumoro

+0

ご協力ありがとうございます。 Main™の__init__()のために、まだ動作しません。何か間違っています... – Dadep

関連する問題