【问题标题】:How to set child windows size auto resize with respect to its parent window in PyQt4?如何在 PyQt4 中设置子窗口大小相对于其父窗口自动调整大小?
【发布时间】:2012-02-04 05:27:17
【问题描述】:

我的 pyQt4 应用程序有主对话框和内容选项卡控件,然后是子组件。

我想要的是,当用户单击最大化按钮或调整主窗口大小时,选项卡控件的大小及其组件位置应自动更新。

类似于 java swing 应用程序中的水平可调整大小、垂直可调整大小的属性。

【问题讨论】:

标签: qt pyqt4 qt-designer


【解决方案1】:

如果您在 Qt Designer 中创建了对话框,请确保您已正确设置所有布局。

首先,右键单击选项卡小部件的每个选项卡,然后从菜单中选择Layout/Layout in a Grid。工具栏上还有一个按钮可以做同样的事情(图标是一个蓝色的小方块网格)。

在每个选项卡上设置好布局后,对主窗体也执行相同的操作。

请注意,有时在对象检查器中选择并右键单击项目比表单本身更容易。对象检查器还会在表单中每个被指定布局的项目旁边显示一个图标。

设置完所有布局后,使用Form/Preview... 检查一切是否按预期工作。

【讨论】:

    【解决方案2】:

    使用QHBoxLayoutQVBoxLayout 等布局。

    from PySide.QtCore import *
    from PySide.QtGui import *
    
    app = QApplication([])
    
    win = QMainWindow()
    
    frame = QFrame()
    win.setCentralWidget(frame)
    
    layout = QHBoxLayout()
    frame.setLayout(layout)
    
    layout.addWidget(QPushButton("Expanding Button"))
    layout.addWidget(QPushButton("Another Expanding Button"))
    
    win.show()
    
    app.exec_()
    

    这会将两个QPushButtons 添加到QHBoxLayout 内的QMainWindow。这意味着他们将在彼此旁边,他们将各自填满他们的一半窗口。 QPushButtons 恰好只能水平填充(除非您设置大小策略),但 QTabWidget 将填充所有可用空间。

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 2017-04-26
      • 1970-01-01
      • 2017-03-12
      • 2012-11-28
      • 2012-12-02
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      相关资源
      最近更新 更多