Pyside GUI函数overwrite issu

2024-04-19 11:04:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习用PySide制作GUI。你知道吗

  • 如何在QHBoxLayout()中重新调整按钮的大小?我尝试了button_1.setFixedWidth()和button_1.setFixedHeight(),它们使按钮不可伸缩。按钮\u 1.move()也不起作用。

  • 我还创建了一个函数angles(),它有Qlabel和QLineEdit,当我运行程序时,button函数重写angles函数,只在GUI的右角显示按钮。

  • 如何调整QLineEdit的长度,使其不扩展整个窗口?你知道吗

    import sys
    from PySide.QtGui import *
    from PySide.QtCore import *
    
    class MainWindow(QMainWindow):
    #GUI Layout
        def __init__(self,parent = None):
        super(MainWindow, self).__init__(parent)
    
        widget = QWidget()
        self.setCentralWidget(widget)
        self.setWindowTitle("Example")
        self.setGeometry(400, 100, 1500, 800)
        self.angles()
        self.makebuttons()
    
        def angles(self):
            central_widget = QWidget()
            self.setCentralWidget(central_widget)
    
            Rotation = QLabel('Rotation:')
            Tilt = QLabel('Tilt:')
    
            RoatationEdit = QLineEdit()
            TiltEdit = QLineEdit()
    
            grid = QGridLayout()
            grid.setSpacing(2)
    
            grid.addWidget(Rotation,1,0)
            grid.addWidget(RoatationEdit, 1, 1)
            grid.addWidget(Tilt,2,0)
            grid.addWidget(TiltEdit, 2, 1)
            central_widget.setLayout(grid)
    
       def makebuttons(self):
           central_widget = QWidget()
           self.setCentralWidget(central_widget)
    
           hbox = QHBoxLayout()
           button_1 = QPushButton("Button 1",self)
           button_1.move(0,30)
           hbox.addStretch(1)
           button_2 = QPushButton("Button 2",self)
           hbox.addStretch(1)
           hbox.addWidget(button_1)
           hbox.addWidget(button_2)
    
           vbox = QVBoxLayout()
           vbox.addStretch(1)
           vbox.addLayout(hbox)
    
           central_widget.setLayout(vbox)
         # central_widget.addLayout(vbox)
    
    
    if __name__ == '__main__':
    
        import sys
        app = QApplication(sys.argv)
        window = MainWindow()
        window.show()
        sys.exit(app.exec_())
    

Tags: importselfsysguibuttonwidget按钮grid
2条回答
  • 如果要调整大小,请使用:button_1.setFixedSize({your scale}*button_1.size())

  • makebuttons函数通过删除上面的所有内容来创建另一个centralWidget,这样您就看不到您对角度做了什么。

  • 要更改QLineEdit的宽度,请使用{your QlineEdit} .setFixedWidth({your width})

我使用Qt Designer来完成所有的PysideGUI工作,即使它是一个相当简单的程序。它不仅仅是一个拖放WYSISYG工具。对于示例中的按钮,您将看到一个可配置属性的列表,包括按钮的大小参数以及配置布局的能力。你知道吗

因此,我的解决方案是在QT Designer中创建GUI,然后在使用pyside-uic工具将代码转换为python之前修改那里的布局。然后将生成的python模块导入到您的代码中。在那里,您仍然可以在以后的代码中重新配置您想要的任何东西,例如,如果您需要在程序运行期间更改GUI的外观。你知道吗

相关问题 更多 >