我想用PyQt導入一個頁面並將其添加到使用Qt設計器創建的QStackedWidget中。我想不要觸摸已編譯的頁面代碼或已編譯的MainWindow代碼。我可以顯示MainWindow的罰款,但我似乎無法導入該頁面,並將其添加到我的QStackedWidget。用Python,PyQt,Qt設計器和QStackedWidget導入頁面
這裏是我的主窗口和頁面編譯後的代碼看起來像:
我mainWindow.py
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
_fromUtf8 = lambda s: s
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
...
我appInfoPage.py
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
_fromUtf8 = lambda s: s
class Ui_appInfoPage(object):
def setupUi(self, appInfoPage):
appInfoPage.setObjectName(_fromUtf8("appInfoPage"))
...
我main.py
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from mainWindow import Ui_MainWindow
from appInfoPage import Ui_appInfoPage
class main(QMainWindow, Ui_MainWindow):
def __init__(self):
super(QMainWindow, self).__init__()
self.setupUi(self)
self.appInfoPage = Ui_appInfoPage()
self.appInfoPage.setupUi(self.appInfoPage)
self.stackedWidget.addWidget(self.appInfoPage)
self.stackedWidget.setCurrentWidget(self.appInfoPage)
if __name__ == '__main__':
application = QApplication(sys.argv)
window = main()
window.show()
sys.exit(application.exec_())
當前的代碼給我一個AttributeError: 'Ui_appInfopage' object has no attributes 'setObjectName'
錯誤,如果我把self.appInfoPage.setupUi(self)
代替,頁面與MainWindow重疊。
任何幫助將不勝感激。
工作。謝謝。 – Voltron43 2012-08-15 18:30:18
我有另一個與這個項目有關的問題:我似乎無法通過self.lineEdit.setText('test')在實際的AppInfoPage類下設置一個AppInfoPage QLineEdit文本,但是我可以使用主類來設置它self.appInfoPage.lineEdit.setText( '試驗')。但是,我能夠使用self.lineEdit.text()讀取AppInfoPage類下的QLineEdit。再次感謝你。 – Voltron43 2012-08-16 16:50:29
@ Voltron43。請爲此啓動一個新問題,並顯示導致您遇到問題的實際代碼。 – ekhumoro 2012-08-16 17:28:18