- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有 ubuntu 11.10 中内置的 Qt 版本。并且我正在尝试使用无法实际停靠的 QDockWidget
(基本上,我只想要一个 float 的窗口。我不想只让 View 成为顶级 View ,因为那样我就会有OS 窗口栏在那里,我不想要,如果我要隐藏它,那么窗口将无法移动)。
所以,我基本上创建了一个新的 Qt Gui 项目,除了 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 中的错误。
最佳答案
您使小部件 float 但不可 float 。
dockWidget->setFeatures( QDockWidget::DockWidgetMovable |
QDockWidget::DockWidgetFloatable );
你也可以有一个可移动的无框窗口,通过 mousePressEvent
、mouseReleaseEvent
和 mouseMoveEvent
处理鼠标拖动。
基于QDockWidget
源代码,如果有标题栏小部件,则不显示“ float 按钮”:
dockWidget->setTitleBarWidget(new QLabel("Dock Widget", dockWidget));
或者因为它有一个名字(没有记录),你可以显式地隐藏它:
QAbstractButton * floatButton =
dockWidget->findChild<QAbstractButton*>("qt_dockwidget_floatbutton");
if(floatButton)
floatButton->hide();
关于c++ - QDockWidget导致qt崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9559666/
H 在那里。 谁能告诉我如何设置标签化的 QDockWidget 弹出到前面(作为事件停靠栏)? 在下图中,“full”选项卡被选中并且它的内容可见,但我想将“mouth”选项卡设置为所选选项卡并使其
我正在尝试创建一个专门的 QDockWidget,其中包含我可以在其他 Qt5 UI 中使用的一些内容。为此,我创建了一个带有 UI 表单的 QDockWidget 子类,名为 SpecialDock
我想知道是否有人知道是否可以拖动 QDockWidget从一个窗口到另一个窗口。 我正在开发一个有很多窗口的应用程序。每个窗口都有特定的用途。我想使用 QDockWidget 因为在主窗口中停靠小部件
我是 Qt 的新手,我正在尝试创建一个停靠在窗口右侧的 DockWidget。我为停靠栏设置了最大和最小宽度(正如您将在下面的代码中看到的那样)。如果使用 Qt::LeftDockWidgetArea
我有一个构建小部件的类,我可以将其停靠到我的主应用程序中。该类继承QDockWidget。如果愿意,这允许我停靠小部件。但是,我希望默认情况下停靠此小部件,而不是显示为单独的 float 窗口。 为了
我可以按如下方式添加 QDockWidgets: QDW1 QDW2; QDW3 QDW4; 使用代码 QDockWidget *dwidget = new QDockWidget(tr("QDW1"
我有一个 QDockWidget 类和一个 QMainWindow: // docker.hpp class Docker : public QDockWidget { Q_OBJECT pu
现在我的应用程序左侧有四个自定义的QDockWidgets。当您启动应用程序时,每一个都是可见的,但由于每一个的可见性,它们都非常小。 我希望三个 QDockWidgets 嵌套在一个主要的后面,以给
有没有一种简单的方法可以删除 QDockWidget 的调整大小句柄?我的停靠小部件无法调整大小(大小策略是固定的),因此将句柄放在那里只是多余的。 最佳答案 这个错误与 Qt 本身一样古老,我在这个
我有一个以 QDockWidget 作为主要小部件的 QTDesigner 对话框。当我将它停靠到主窗口并显示对话框时,它会自动自动隐藏,但允许我使用鼠标显示/隐藏它。我想默认保持可见。如果我使用鼠标
我有一个应用程序,需要在运行时根据用户输入以编程方式将固定大小的子窗口小部件添加到停靠窗口小部件。我想将这些小部件添加到 Qt::RightDockArea 上的停靠栏,从上到下直到空间用完,然后创建
我想彻底删除QDockWidget的标题栏。除了样式表,还有什么方法可以做到这一点吗? 最佳答案 dockWidget->setTitleBarWidget(new QWidget()); 关于c++
我正在制作一个小应用程序,用于使用 Qt 和 C++ 对图像应用各种滤镜。 我的问题是,是否可以在 QDockWidget 上添加多个 widget ?因为我想添加按钮以重新应用停靠栏上的最后 5 个
我想创建一个包含多个 QDockWidgets 的小部件,目的是将其放入 QMainWindow 中。问题是,如果我使用 layout->addWidget(dockWidget); 将 QDockW
当我将多个 QDockWidget 分组在同一位置时,它们的选项卡位于底部。有没有办法将它们放在顶部? 如果我可以用选项卡本身替换标题栏,那就更好了。 Eclipse IDE 具有非常相似的行为,如以
如何设置 QDockWidget 的初始宽度? 我已经实现了 sizeHint 功能,但接下来呢? 最佳答案 QDockWidget 的文档说: A QDockWidget acts as a wra
我正在使用 QDockWidgets 并将其中两个放在我的应用程序的左侧,以便可以使用选项卡在它们之间进行选择。然而,Qt 的默认行为看起来很糟糕而且不直观。它不能拖动选项卡来移动小部件,而是在必须拖
我在我的主窗口中创建了一个没有 centralwidget 的应用程序,并显示为最大化: setCentralWidget(0); setWindowState(Qt::WindowMaximized
有没有办法在样式表中更改 QDockWidget(Qt 4.8)的悬停/按下图标?我正在使用这种样式来更改默认状态的按钮图像: QDockWidget{ font-weight: bold;
我有一个停靠小部件,现在我想添加一个“窗口”菜单来显示/隐藏小部件。很容易做到 showPropWinAct = new QAction(tr("&Properties"), this); showP
我是一名优秀的程序员,十分优秀!