我创建了一个Qt应用程序,保证始终在4:3的显示器上运行。我把分辨率硬编码为320x240,并设计了所有东西看起来很棒。
现在需求已经改变,该应用程序将在640x480的分辨率下运行(仍然是4:3)。
有没有一种简单的方法来缩放整个应用程序,使所有内容都增大一倍。特别是我想避免手动更改所有按钮大小、字体、叠加层的绝对定位等。
我找到了很多关于高DPI设置的答案,但这与高DPI几乎没有关系。
QGraphicsView
并将主窗口小部件嵌入其中。但是整个应用程序必须对所有小部件应用相同的缩放因子。
QGraphicsView
允许你进行缩放操作。class Widget(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setFixedSize(320, 420)
layout = QFormLayout(self)
btn = QPushButton("Button")
btn.setFixedSize(100, 40)
lineEdit = QLineEdit("Button")
btn.setFixedSize(150, 20)
layout.addRow("A button", btn)
layout.addRow("A Line Edit", lineEdit)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
w = Widget()
view = QGraphicsView()
scene = QGraphicsScene(0, 0, 1000, 1000)
view.setFixedSize(320 * 2, 420 * 2)
view.setScene(scene)
view.scale(2, 2)
proxy = scene.addWidget(w)
view.centerOn(proxy)
#w = Widget()
#w.show()
view.show()
sys.exit(app.exec_())
QApplication.quit()
时,会出现“分段错误:11”的错误。有什么想法吗? - Andrei Cioara