如何使用程序 Qt Designer 将 QWidget 放在中间而不依赖于 Pyside2 中的屏幕尺寸?

或latym

我现在使用 Pyside2>Qt Desiger 并且我想通过视觉来影响程序的反射。

在使用 py 上的 ui 翻译他并在文本编辑器中编辑他之前,想知道 Qt Desiger 是否可以在内部将 QWidget 准确地放在屏幕中间而不取决于他的大小。只有在我找到并能够使用这个样式表的代码的地方,而不是他接受的所有来自 css 的命令。

我不想使用命令行,因为对我来说,不断地更改一个小细节并重新启动代码让我感到不舒服,因为她所代表的内容一开始我想在 Qt Designer 上创建一个模板,然后已经编辑在命令行中如果有可能如何编辑不关闭我想知道如何操作的 Qt Designer 代码

在此处输入图片说明

埃利亚内斯克

由于没有 python 的答案,我发布了这个答案,它是Qt 官方示例的翻译

import sys

from PySide2 import QtCore, QtWidgets


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)

    w = QtWidgets.QWidget()
    w.resize(640, 480)

    w.setGeometry(
        QtWidgets.QStyle.alignedRect(
            QtCore.Qt.LeftToRight,
            QtCore.Qt.AlignCenter,
            w.size(),
            QtWidgets.QApplication.instance().primaryScreen().availableGeometry()
            # or
            # QtWidgets.QApplication.instance().desktop().availableGeometry(),
        )
    )
    w.show()

    sys.exit(app.exec_())

更新:

你可以在 QGridLayout 中将拉伸设置为第一列和第三列,类似于行:

在此处输入图片说明

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>800</width>
    <height>600</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <layout class="QGridLayout" name="gridLayout" rowstretch="1,0,1" columnstretch="1,0,1">
    <property name="leftMargin">
     <number>0</number>
    </property>
    <property name="topMargin">
     <number>0</number>
    </property>
    <property name="rightMargin">
     <number>0</number>
    </property>
    <property name="bottomMargin">
     <number>0</number>
    </property>
    <item row="0" column="1">
     <spacer name="verticalSpacer">
      <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
      <property name="sizeHint" stdset="0">
       <size>
        <width>20</width>
        <height>142</height>
       </size>
      </property>
     </spacer>
    </item>
    <item row="1" column="0">
     <spacer name="horizontalSpacer">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
      <property name="sizeHint" stdset="0">
       <size>
        <width>254</width>
        <height>20</height>
       </size>
      </property>
     </spacer>
    </item>
    <item row="1" column="1">
     <widget class="QWidget" name="widget" native="true">
      <property name="styleSheet">
       <string notr="true">background-color: rgb(239, 41, 41);</string>
      </property>
      <layout class="QVBoxLayout" name="verticalLayout">
       <item>
        <widget class="QLabel" name="label">
         <property name="font">
          <font>
           <pointsize>21</pointsize>
          </font>
         </property>
         <property name="text">
          <string>Text</string>
         </property>
         <property name="alignment">
          <set>Qt::AlignCenter</set>
         </property>
        </widget>
       </item>
       <item>
        <widget class="QTextEdit" name="textEdit">
         <property name="styleSheet">
          <string notr="true">background-color: rgb(255, 255, 255);</string>
         </property>
        </widget>
       </item>
      </layout>
     </widget>
    </item>
    <item row="1" column="2">
     <spacer name="horizontalSpacer_2">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
      <property name="sizeHint" stdset="0">
       <size>
        <width>254</width>
        <height>20</height>
       </size>
      </property>
     </spacer>
    </item>
    <item row="2" column="1">
     <spacer name="verticalSpacer_2">
      <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
      <property name="sizeHint" stdset="0">
       <size>
        <width>20</width>
        <height>141</height>
       </size>
      </property>
     </spacer>
    </item>
   </layout>
  </widget>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>800</width>
     <height>24</height>
    </rect>
   </property>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <resources/>
 <connections/>
</ui>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用PySide2在Qt-Designer中嵌入PyQtGraph

使用Qt Designer在PySide2中实现信号/插槽时出错

使用Qt Designer时显示PySide2 QCharts

在Qt Designer中使用自定义PySide2小部件

使用PyQt5 / Pyside2将重复的SVG模式设置为主窗口/ Qwidget背景

如何不依赖于Java中的键值而从树形图顺序获取输出

从Qt Designer将QWidget升级到QMainWindow或将QMainWindow添加到QWidget

如何在设计的QMainWindow内添加在Qt Designer中设计的QWidget?

使用Qt Designer表单和PyQt5在QWidget中绘制matplotlib图

将Qt Pyside2与asyncio await语法一起使用?

我可以运行futurize --stage2更改而不依赖于将来的程序包吗

如何创建不依赖于ASP.NET Core中的声明的自定义Authorize属性?

当用户到达页面中的特定点时如何打印内容?(不依赖于任何类或ID元素)

如何部署pyside2应用程序?-Qt方式

在Linux上安装PySide2的Qt Designer(用于Python的Qt)在哪里?

使用PySide2更改Qt .ui文件中的组合框值

如何使用PySide2 Python后端将PyQtGraph嵌入QML中?

Maven:如何不依赖于父POM

如何在PySide2中将QByteArray转换为python字符串

如何在PySide2中将python列表转换为QVariantList

如何创建一个RxJS缓冲区来对NodeJS中的元素进行分组,但不依赖于永远的运行间隔?

如何在Qt中打印QWidget?

在Pyside2中将QAbstractListModel声明为属性

QT 5.5将外部应用程序嵌入QWidget

如何制作不依赖于msvc dll的Win32应用程序?

如何使用PySide2在matplotlib中显示图形?

如何使用PySide2在qml中设置值?

如何使用Qt Designer将文本添加到QToolbar?

从QWidget获取对象名(从Qt Designer中看到)?