QDockWidget导致qt崩溃
QDockWidget causes qt to crash
我有构建在ubuntu 11.10中的Qt版本。我正在尝试使用一个无法实际停靠的QDockWidget
(基本上,我只想要一个浮动的窗口。我不想只让视图成为顶级视图,因为那样我就会有操作系统窗口栏,这是我不想要的,如果我隐藏它,那么窗口就无法移动)。
所以,我基本上做了一个新的QtGui项目,除了mainwindow.cpp
文件,我不更改任何文件,我将其更改为:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDockWidget>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QDockWidget *dockWidget = new QDockWidget(this);
// Without window management and attached to mainwindow (central widget)
dockWidget->setFloating( true );
// resize by frame only - not positional moveable
dockWidget->setFeatures( QDockWidget::DockWidgetMovable );
// never dock in mainwindow
dockWidget->setAllowedAreas( Qt::NoDockWidgetArea );
// title
dockWidget->setWindowTitle( "Dock Widget" );
// add contents. etc etc....
dockWidget->show();
}
MainWindow::~MainWindow()
{
delete ui;
}
问题是,当我移动小部件时,整个程序都崩溃了。我想知道我是否做错了什么,或者qt中是否只有一个错误。
您使小部件浮动,但不可浮动。
dockWidget->setFeatures( QDockWidget::DockWidgetMovable |
QDockWidget::DockWidgetFloatable );
您还可以使用鼠标拖动mousePressEvent
、mouseReleaseEvent
和mouseMoveEvent
来创建一个可移动的无框窗口。
如何隐藏现在无用的浮动按钮
基于QDockWidget
源代码,如果有标题栏小部件:,则不会显示"浮动按钮"
dockWidget->setTitleBarWidget(new QLabel("Dock Widget", dockWidget));
或者,由于它有一个名称(没有记录),您可以显式地隐藏它:
QAbstractButton * floatButton =
dockWidget->findChild<QAbstractButton*>("qt_dockwidget_floatbutton");
if(floatButton)
floatButton->hide();
相关文章:
- Qt 图表条形图调整大小崩溃
- 在从Qt调用的Python脚本中导入OpenCV崩溃
- 在 Ubuntu 服务器上运行 QT 应用程序时崩溃
- Qt应用程序找不到第三方DLL并崩溃
- Popen使Qt调试器崩溃
- Qt 5 应用程序崩溃并出现"qLineEdit::setText"
- Qt 5.9中的QML崩溃-帮助读取堆栈跟踪
- Qt-工作线程崩溃时将cv::Mat转换为QImage
- 使用MSVC编译的Qt程序在app.exec()上崩溃
- libCURL:上传数据崩溃(Qt,SMTP)
- 需要有关在qt c ++应用程序中使用崩溃问题的建议
- QT在跑步过程中崩溃
- gdborig.exe 在调试 QT 5.8 并在窗口中打开 QFileDialog 时随机崩溃
- 应用程序在 C++ QT 上执行 sql 后崩溃
- 用静态版本的QT编译时,文件对话框崩溃
- 当删除上下文属性中的QLIST对象时,QT QML应用程序崩溃
- 加密任务使用QT崩溃,Openssl该怎么办
- QT网络崩溃
- 我的Qt程序可以编译,但是当我在声明中使用ifstream时崩溃
- Qt 网络引擎调试版本崩溃