python - Qt 按钮样式从 ui 预览到原始窗口各不相同

标签 python python-3.x pyqt pyqt5 qt-designer

我正在尝试使用 qt 创建者和 PyQt5 设计一个虚拟键盘,问题是,按钮在 qt 创建者中看起来很现代,当我执行 python 文件时,我得到了一个非常旧的按钮样式。如何获得原始样式?

所用按钮的代码是,

    self.Q = QtWidgets.QPushButton(self.KEYBOARD)
    self.Q.setGeometry(QtCore.QRect(0, 0, 80, 60))
    font = QtGui.QFont()
    font.setPointSize(20)
    self.Q.setFont(font)
    self.Q.setObjectName("Q")

这是qt Creator中的ui渲染。

这是执行python文件时的情况。

我的工作环境是,

RELEASE=18.1
CODENAME=serena
EDITION="Cinnamon 64-bit"
DESCRIPTION="Linux Mint 18.1 Serena"
DESKTOP=Gnome
TOOLKIT=GTK
NEW_FEATURES_URL=http://www.linuxmint.com/rel_serena_cinnamon_whatsnew.php
RELEASE_NOTES_URL=http://www.linuxmint.com/rel_serena_cinnamon.php
USER_GUIDE_URL=help:linuxmint
GRUB_TITLE=Linux Mint 18.1 Cinnamon 64-bit

最佳答案

Qt 使用 QStyle 类处理样式,通常 Qt Designer 使用样式融合,因此它以这种方式显示,这与操作系统配置的样式不匹配:

enter image description here

您的情况的解决方案是使用以下代码配置使用融合样式的应用程序:

app = QApplication(sys.argv)
app.setStyle("fusion")

关于python - Qt 按钮样式从 ui 预览到原始窗口各不相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45386146/

相关文章:

python - 使用递归,是否可以将初始输入设置为固定字母,使其不会随着流程循环而受到影响?

python - 不显示缺失值​matplotlib

python - Itertools 排列

python - QSystemTrayIcon 判断它是否被点击或处于焦点

python - PyQt:计算太长时发出两次信号

python - 如何消除 QTableWidget 中的空白?

python - Django - 存储过程不存在

python - 如何在python标点符号之前而不是标点符号之后删除空格

Python 列表列移动

Python try- except 循环中的多个值,如果引发任何异常则跳过当前迭代