免责声明: python和qt设计器都是新的
QT设计器4.8.7
Python 3.4
PyCharm 5.0.3
问题-如何以编程方式将控件添加到主窗体或主窗体上的滚动区域小部件(在QT设计器中创建)?
我在qt设计器中创建了一个MainWindow,并添加了我的小部件。以下是PyCharm中的整个测试程序:
import sys
from PyQt4 import QtGui, QtCore, uic
from PyQt4.QtGui import *
from PyQt4.QtCore import *
qtCreatorFile = "programLauncher.ui"
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)
class MyApp(QtGui.QMainWindow, Ui_MainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
Ui_MainWindow.__init__(self)
self.setupUi(self)
# Cannot resize or maximize
self.setFixedSize(1045, 770)
# Add button test
self.dateLabel = QtGui.QLabel("Test")
self.pushButton = QtGui.QPushButton('Test button')
# self.scrollArea_programs.addWidget()
grid = QtGui.QGridLayout()
# self.scrollArea_programs.addWidget(self.pushButton)
grid.addWidget(self.dateLabel,0,0)
grid.addWidget(self.pushButton,0,1)
self.setLayout(grid)
self.pushButton_exit.clicked.connect(self.closeEvent)
def closeEvent(self):
QtGui.QApplication.quit()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
window = MyApp()
window.show()
sys.exit(app.exec_())如您所见,我试图将控件添加到网格中,但在程序运行时没有显示任何控件--我还尝试向滚动区域添加一个控件。有人能帮我在运行时将1控件添加到滚动区吗?这样我就可以知道正确的方法或“一种”正确的方法来完成此操作。
提前感谢
发布于 2016-02-05 13:31:21
在不需要访问programLauncher.ui和对发布的代码进行最小更改的情况下,您可以将UI元素添加到窗口,如下所示:
from PyQt4 import QtGui
import sys
class MyApp(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
# Cannot resize or maximize
self.setFixedSize(1045, 770)
widget = QtGui.QWidget(self)
self.setCentralWidget(widget)
# Add button test
self.dateLabel = QtGui.QLabel("Test")
self.pushButton = QtGui.QPushButton('Test button')
grid = QtGui.QGridLayout()
grid.addWidget(self.dateLabel, 0, 0)
grid.addWidget(self.pushButton, 0, 1)
widget.setLayout(grid)
self.pushButton.clicked.connect(self.closeEvent)
def closeEvent(self, event):
QtGui.QApplication.quit()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
window = MyApp()
window.show()
sys.exit(app.exec_())这将获得屏幕上的控件,尽管布局还有很多需要改进的地方。您可能必须根据.ui文件中的内容对此进行修改。在本例中,您需要注意的一点是,QMainWindow需要一个中心小部件(在上面的示例中是widget)。然后,在该小部件上设置布局。
发布于 2016-02-06 19:29:56
您可以使用设计器创建您的.ui文件,您可以使用以下内容将其加载到您的.py中:
from PyQt4 import QtCore, QtGui, uic
class my_win(QtGui.QMainWindow):
def __init__(self):
self.ui = uic.loadUi('my_ui.ui',self)然后,您可以使用以下内容访问您的所有小部件
self.ui.actionQuit.triggered.connect(QtGui.qApp.quit)或
self.ui.my_button.triggered.connect(self.do_someting)发布于 2016-02-11 14:06:56
多亏了JCVanHamme ( programLauncher.ui提示)和外部帮助,我现在了解了在运行时访问MainWindow所需要了解的大部分知识。所以对于任何对这个初学者技巧感兴趣的人来说:
别让权力冲昏你的头脑-干杯
https://stackoverflow.com/questions/35224978
复制相似问题