草庐IT

QMainWindow

全部标签

c++ - QMainWindow 不再是事件窗口

我正在用Qt制作一个简单的游戏,我想在用户切换到另一个窗口时暂停游戏(这可能是通过最小化它或不小心单击它旁边的窗口等)。我的游戏封装​​在QMainWindow中,因此我希望能够检测到它何时失去焦点。为此我尝试了几种不同的方法,但都没有成功。我首先尝试重载QMainWindow的focusOutEvent,但是这个方法只在我第一次用setFocus给窗口焦点时被调用。我还尝试重载窗口的event(QEvent*)方法来检查QEvent::ApplicationActive和QEvent::ApplicationDeactivate。我会发布我的QMainWindow的代码,但没有太多可

c++ - Tabify 3 QDockWidget

如何在QMainWindow中为3个小部件创建一个标签化停靠栏?我正在使用下面的代码:widget1=newQDockWidget(this);widget1->setObjectName("name1");addDockWidget(Qt::LeftDockWidgetArea,widget1);widget2=newQDockWidget(this);widget2->setObjectName("name2");addDockWidget(Qt::LeftDockWidgetArea,widget2);tabifyDockWidget(widget2,widget1);widge

c++ - 使 QMainWindow 仅可水平调整大小 - 即宽度可调整大小,但高度固定

我可以制作一个带有网格布局的QMainWindow只在水平方向而不是在垂直方向调整大小吗?我希望它的垂直尺寸是容纳所有按钮/行编辑所需的最小尺寸。 最佳答案 是的,你可以。作为QMainWindow继承自QWidget,使用QWidgetsizepolicy设置为仅允许在水平方向调整大小。如果在QtDesigner中工作,请将垂直大小策略设置为固定,并将最小高度设置为您想要的高度。在代码中:QMainWindow*mainWindow=newQMainWindow();mainWindow->setSizePolicy(QSizeP

c++ - 如何在 QMainWindow 中设置多个标志?

来自这里:http://doc.qt.io/qt-4.8/qt-widgets-windowflags-example.htmlif(flags&Qt::MSWindowsFixedSizeDialogHint)text+="\n|Qt::MSWindowsFixedSizeDialogHint";if(flags&Qt::X11BypassWindowManagerHint)text+="\n|Qt::X11BypassWindowManagerHint";if(flags&Qt::FramelessWindowHint)text+="\n|Qt::FramelessWindowHi

c++ - 如何以编程方式将 QMainWindow 的大小调整为其最小大小

当我有一个带有网格布局的QMainWindow时,当用鼠标调整它的大小时,它不会低于其中所有控件正确显示所需的最小尺寸。在我的应用程序中,我有时会以编程方式隐藏控件,但随后窗口保持相同大小,其余控件看起来分散开来,它们之间的空间太大。我最终手动调整了对话框的大小,这样它看起来就不难看了。我能否以编程方式将对话框的垂直大小设置为我在其中隐藏控件后手动调整大小时获得的最小值? 最佳答案 我发现调整QMainWindow中的centralWidget的大小,然后调整QMainWindow本身的大小就可以了。换句话说:fromPyQt4im

c++ - 在 QT 中从一个 QToolButton 切换到另一个

我想从一个QToolButton切换到QToolBar中的另一个。我使用过QStackedWidget,从一个widget移动到另一个太简单了,但在这里我无法通过使用keyReleaseEvent.mywindow::mywindow():QMainWindow(){widget=newQWidget();setCentralWidget(widget);tool=newQToolBar();vertical=newQVBoxLayout();button1=newQToolButton();connect(button1,SIGNAL(clicked()),this,SLOT(fil

c++ - 如何更改 Qt 中的窗口标题和中央小部件?

您好,我在Qt中更改窗口标题和中央小部件时遇到问题。有主窗口:classMainWindow:publicQMainWindow{//(...)QStackedWidget*widgets;Quiz*widget1,*widget2;}还有一个类测验:classQuiz:publicQWidget{publicslots:voidmyClicked();}我想在单击按钮后更改MainWindow标题,这是Quiz的一个元素(它与slotmyClicked相关联)。voidQuiz::myClicked(){static_cast(parent).myFunction();}voidMa

c++ - QMainWindow Qt5.7 中的 Force Tabbed Dock

我试图让我的QMainWindow只允许选项卡式QDockWidgets。如果我正确理解Qt文档,它应该可以与setDockOptions方法一起使用。以下代码对我不起作用:QMainWindowwindow;window.setDockOptions(QMainWindow::ForceTabbedDocks);我做错了什么?或者它是当前Qt版本中的错误?我在MacPro上编码,我使用的是Qt5.7。谢谢 最佳答案 ForceTabbedDocks仅适用于用户与停靠栏的交互。要以编程方式在选项卡中添加新停靠栏,您需要使用QMain

c++ - 如何逐步更新QMainWindow?

我想逐步更新我的QMainWindow。我使用sleep方法,但看不到变化。我想每3秒查看一次更改。voidMainWindow::updateScreen(){ui->pushButton1->show();QThread::sleep(3);ui->pushButton2->show();QThread::sleep(3);ui->pushButton3->show();QThread::sleep(3);}但9秒后,所有更改会立即应用。 最佳答案 您永远不会在主线程中使用QThread::sleep()因为它会阻止GUI收到有

c++ - 如何向 QMainWindow 添加背景图像?

您好,我是QTCreator的新手。我尝试了很多方法来为Q主窗口设置背景图像。我用我的图像添加了一个资源文件夹。我尝试通过在UI中使用setstylesheet添加并尝试对其进行编码。当我使用UI时,我可以看到图像,但是当我运行它时什么也没有显示。我想放一张扑克牌table的图片作为背景,并能够在顶部放置按钮等。主要.cpp:#include"mainwindow.h"#includeintmain(intargc,char*argv[]){QApplicationa(argc,argv);MainWindoww;w.show();returna.exec();}主窗口.cpp#inc