要在 Qt C++ 中让 QMainWindow 不能关闭、隐藏右上角的关闭按钮,但保留最小化和最大化按钮,你可以结合使用
setWindowFlags
和
Qt::CustomizeWindowHint
。
以下是一个示例代码:
#include <QMainWindow>
#include <QCloseEvent>
class MyMainWindow : public QMainWindow
public:
MyMainWindow(QWidget *parent = nullptr) : QMainWindow(parent)
// 设置窗口标志,只显示标题栏,并隐藏关闭按钮
setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint | Qt::CustomizeWindowHint);
void closeEvent(QCloseEvent *event) override
// 取消关闭事件
event->ignore();
int main(int argc, char *argv[])
QApplication app(argc, argv);
MyMainWindow window;
window.show();
return app.exec();
在上述示例中,我们创建了一个自定义的 QMainWindow 子类 MyMainWindow
。在构造函数中,我们使用 setWindowFlags
来设置窗口标志,限制为只有标题栏,并通过 Qt::CustomizeWindowHint
隐藏了关闭按钮。同时保留了最小化和最大化按钮。
同时,在重写的 closeEvent
方法中,我们调用 event->ignore()
来取消关闭事件,从而阻止 QMainWindow 关闭。
请注意包含相应的头文件和启动应用程序的代码。运行示例后,你会看到右上角的关闭按钮已被隐藏,并且无法通过点击该按钮来关闭窗口,但最小化和最大化按钮仍然可用。
内容由零声教学AI助手提供,问题来源于学员提问
本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=8663
这个错误是因为您正在尝试在指向QList<QString>的指针上调用append函数,而不是直接访问该列表。由于subject.subject_Type.choose_multiple.banswer是一个指向Q...
painter.setCompositionMode(QPainter::CompositionMode_Clear); // 设置绘图模式为擦除模式
painter.setPen(Qt::transparent); // 设置画笔颜色为透明
// 绘制当前路径,会以透明色进行擦除
const QPainterPath& erasePath = paths[currentPathIndex];