2016-11-26 4 views
2

私はUIをrefrencingしているguiNext.pyとnext.pyというPyQt5 Uiを持っています。 UIボタンに機能を追加するにはどうすればいいですか?これは私が持っているもので、next.pyを実行してHELLOボタンをクリックすると何も起こりません。PyQt5 Uiをインポートしてボタンに関数を追加

guiNext.py:

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

# Form implementation generated from reading ui file 'guiNext_001.ui' 
# 
# Created by: PyQt5 UI code generator 5.6 
# 
# WARNING! All changes made in this file will be lost! 

from PyQt5 import QtCore, QtGui, QtWidgets 

class Ui_nextGui(object): 
    def setupUi(self, nextGui): 
     nextGui.setObjectName("nextGui") 
     nextGui.resize(201, 111) 
     nextGui.setMinimumSize(QtCore.QSize(201, 111)) 
     nextGui.setMaximumSize(QtCore.QSize(201, 111)) 
     self.centralwidget = QtWidgets.QWidget(nextGui) 
     self.centralwidget.setObjectName("centralwidget") 
     self.helloBtn = QtWidgets.QPushButton(self.centralwidget) 
     self.helloBtn.setGeometry(QtCore.QRect(10, 10, 181, 91)) 
     self.helloBtn.setObjectName("helloBtn") 
     nextGui.setCentralWidget(self.centralwidget) 

     self.retranslateUi(nextGui) 
     QtCore.QMetaObject.connectSlotsByName(nextGui) 

    def retranslateUi(self, nextGui): 
     _translate = QtCore.QCoreApplication.translate 
     nextGui.setWindowTitle(_translate("nextGui", "MainWindow")) 
     self.helloBtn.setText(_translate("nextGui", "HELLO")) 

、ここでは、メインのファイルnext.pyです:

#!usr/bin/env python 
#-*- coding: utf-8 -*- 

from PyQt5 import QtCore, QtGui, QtWidgets 
from guiNext import Ui_nextGui 

class mainProgram(Ui_nextGui): 
    def __init__(self, parent=None): 
     Ui_nextGui.__init__(self) 
     self.setupUi(nextGui) 
     self.helloBtn.clicked.connect(self.hello) 

    def hello(self): 
     print ("HELLO") 

if __name__ == "__main__": 
    import sys 
    app = QtWidgets.QApplication(sys.argv) 
    nextGui = QtWidgets.QMainWindow() 
    ui = Ui_nextGui() 
    ui.setupUi(nextGui) 
    nextGui.show() 
    sys.exit(app.exec_()) 

答えて

1

あなたのプログラムの構造はかなり右ではありません。 use the ui files created by Qt Designerにはいくつかの方法があります。多相継承アプローチは、おそらく最も直感的です。これはコードの外観です。

from PyQt5 import QtCore, QtGui, QtWidgets 
from guiNext import Ui_nextGui 

class mainProgram(QtWidgets.QMainWindow, Ui_nextGui): 
    def __init__(self, parent=None): 
     super(mainProgram, self).__init__(parent) 
     self.setupUi(self) 
     self.helloBtn.clicked.connect(self.hello) 

    def hello(self): 
     print ("HELLO") 

if __name__ == "__main__": 

    import sys 
    app = QtWidgets.QApplication(sys.argv) 
    nextGui = mainProgram() 
    nextGui.show() 
    sys.exit(app.exec_()) 
+0

ありがとうございます。リンクしたページを読まなければなりません。非常に便利。 –

関連する問題