QtGui标签和框架在不同的机器上具有不同的尺寸

QtGui标签和框架在不同的机器上具有不同的尺寸,qt,user-interface,pyqt,qtgui,Qt,User Interface,Pyqt,Qtgui,在不同的windows系统上打开相同的QtGui会导致标签大小或帧大小的不同显示,这会使事情变得丑陋。我使用cx\u freezeto.exe文件编译了我的pyqt4应用程序,当我在另一台机器上打开我的应用程序时,一些标签的大小较小,标签中的部分文本较小看不见。为什么会发生这种情况,我如何解决?对不起,我的英语不好。Qt使用本机windows系统小部件样式信息来呈现其GUI。这使GUI看起来更像一个合适的本机应用程序。如果您使用固定的小部件定位来布局GUI,如您通常使用QtDesigner获得的

在不同的windows系统上打开相同的QtGui会导致标签大小或帧大小的不同显示,这会使事情变得丑陋。我使用
cx\u freeze
to.exe文件编译了我的
pyqt4
应用程序,当我在另一台机器上打开我的应用程序时,一些标签的大小较小,标签中的部分文本较小看不见。为什么会发生这种情况,我如何解决?对不起,我的英语不好。

Qt使用本机windows系统小部件样式信息来呈现其GUI。这使GUI看起来更像一个合适的本机应用程序。如果您使用固定的小部件定位来布局GUI,如您通常使用QtDesigner获得的布局,这可能会导致问题,因为小部件的大小可能在目标平台上有所不同


另一种方法是使用布局控件,如QHBoxLayout、QVBoxLayout等,这些控件可以调整布局以适应小部件的大小。另一种方法是使用特定主题覆盖本机主题,这样无论平台如何,您的应用程序看起来都一样。

标签字体和大小取决于您运行应用程序的特定计算机的设置。也取决于机器的平台。 您可以尝试通过setFont方法将应用程序的字体设置固定到某些特定设置(请参见下面的示例),但请注意,这将忽略本地用户的首选项(可能包括增加字体大小以提高可见性),如果目标计算机上不存在请求的字体,则可能会导致应用程序外观更差

  class MainForm(QtGui.QMainWindow):
    def __init__(self):
      super().__init__()
      self.setFont(QtGui.QFont("Calibri", 10))
更新: 对不起,我误解了你最初的问题。通过调用setMinimumWidth和setMaximumWidth并提供所需的宽度,可以在特定限制内固定标签宽度。因此,在您的情况下,我会设置最小宽度,以便始终完全显示标签文本

  class MainForm(QtGui.QMainWindow):
    def __init__(self):
      super().__init__()
      self.label = QtGui.QLabel("Test")
      self.label.setMinimumWidth(100)

谢谢你的回答。但我说的是标签大小,而不是标签中的文字。