Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt-使QMainWindow在Qt设计器中不可调整大小_C++_Qt_Qmainwindow - Fatal编程技术网

C++ Qt-使QMainWindow在Qt设计器中不可调整大小

C++ Qt-使QMainWindow在Qt设计器中不可调整大小,c++,qt,qmainwindow,C++,Qt,Qmainwindow,有没有办法在Qt Designer中将QMainWindow设置为不可调整大小?我看到了很多编码示例,但我想在Qt Designer中尽可能多地定制UI。到目前为止,我只能通过将最小大小和最大大小设置为相等来实现这一点,但仍然在窗口的角落有调整大小箭头,窗口顶部有一个“最大化”按钮。使用QMainWindow的setFixedSize属性。在designer中,如果我没记错的话,您可以将水平和垂直sizePolicy设置为Fixed当您选择QMainWindow时,对象的属性确实包含一个size

有没有办法在Qt Designer中将QMainWindow设置为不可调整大小?我看到了很多编码示例,但我想在Qt Designer中尽可能多地定制UI。到目前为止,我只能通过将最小大小和最大大小设置为相等来实现这一点,但仍然在窗口的角落有调整大小箭头,窗口顶部有一个“最大化”按钮。

使用QMainWindow的
setFixedSize
属性。在designer中,如果我没记错的话,您可以将水平和垂直
sizePolicy
设置为
Fixed

当您选择QMainWindow时,对象的属性确实包含一个sizePolicy字段,包括水平和垂直,如@jester的答案所述,您可以将其设置为Fixed

我发现这并不总是有效的,也不知道为什么(可能是因为布局),但正如您所发现的,如果您将minimumSize和maximumSize字段设置为相同的值,它会满足您的需要

至于“调整大小箭头”和“最大化”按钮,我从来没有在Qt Creator(designer)上做到过,所以我认为这是不可能的。但是,在类的构造函数中只需要一行代码:-

setWindowFlags(Qt::Window | Qt::CustomizeWindowHint);

默认情况下,窗口标志包括Qt::WindowMaximizeButtonHint。通过设置上述标志,表示您希望自定义窗口以包含指定的元素。这也将删除最小化按钮,因此如果您也需要,您应该添加Qt::WindowMinimizeButtonHint

我没有使用Qt Designer;我正在编写一个从无到有的QMainWindow子类。我找到的不可调整窗口大小的解决方案是在设置完所有小部件和布局后调用QMainWindow。如果你已经设置好了,那么你就不必手动选择尺寸;您只需从中获取尺码即可。我在QMainWindow的子类中使用的代码行是:

setFixedSize(sizeHint());

我在Windows 8.1上的Qt 5.5中对此进行了测试,一切看起来都很好:最大化按钮被禁用,但其他按钮仍然存在,并且当用户将其移动到边框时,光标没有指示调整大小的可能性。

遗憾的是,没有这样做的选项;在VS中,您可以在编辑器中找到一个选项,以删除调整窗口大小的鼠标触发器;但由于某些原因,QT5没有

我尝试使用
sizePolicy
并将其设置为固定的主窗口;但这对横向和纵向政策都没有任何作用

为了解决这个问题,我确实将我的主窗口
最小值
最大值
设置为相同的值;运行应用程序时,不会启用鼠标光标来调整大小


<>这是一个很难看的方法,但是这是我在QT设计器中找到的唯一方法,没有使用代码。

< P>我解决了QT5问题,它显示了即使是固定大小的窗口,但是在Python中显示鼠标箭头大小窗口,但是你可以修改C++。
    MainWindow.setWindowFlags(QtCore.Qt.MSWindowsFixedSizeDialogHint)

这是一个老帖子,但如果有人需要,我想帮忙。 我找到了一种方法(不太漂亮),但它直接从QTDesigner开始工作。 您可以通过将高度和宽度的值也写入“MinimumSize”和“MaximumSize”属性来锁定调整大小。 Oviousy还根据其他用户的指示在垂直和水平方向设置“固定”。
这将删除按钮以放大窗口。

正如我所说,我想在Qt Designer中执行此操作(在菜单和选项中单击并选择),您给出的解决方案是编码解决方案。@我记得有一个选项可以设置horizontalSIzePolicy和VerticalSizePolicy。此策略在窗口行为中不做任何更改,我一直在查看它们,我什么也看不到…是的,大小策略在这里没有任何变化…我想把所有的UI放在一个文件中,使其更具MVC…但我想那是没有办法的…多谢你的代码,我可以启用最小化和关闭,并禁用灰色的最大化,或者根本没有按钮…我只是在寻找最小化和关闭,有可能吗?另外,调整大小的箭头没有出现,也没有在几篇文章中发布相同的答案,如果你认为它们是相同的问题,那么如果可以的话,将其标记为重复。在多个出版物中发布相同的答案被认为是噪音。