关于Qt MessageBox删除TitleBar的问题,我们可以通过设置Qt MessageBox的样式来实现。具体步骤如下:
QMessageBox msgBox;
msgBox.setStyleSheet("QMessageBox { border: none; }");
#ifdef Q_OS_WIN
HWND hwnd = (HWND)msgBox.winId();
LONG lStyle = GetWindowLong(hwnd, GWL_STYLE);
lStyle &= ~(WS_CAPTION | WS_THICKFRAME | WS_MINIMIZE | WS_MAXIMIZE | WS_SYSMENU);
SetWindowLong(hwnd, GWL_STYLE, lStyle);
#endif
msgBox.setWindowTitle("My Message Box");
msgBox.setText("This is a message box without a title bar.");
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.exec();
这样,我们就可以实现一个没有标题栏的Qt MessageBox。需要注意的是,这个方法只适用于Windows系统,如果需要在其他操作系统上实现相同的效果,需要使用相应的API和代码。
领取专属 10元无门槛券
手把手带您无忧上云