嗨,我创建一个dockwidget,我开始它隐藏。问题是之后我无法显示它,而我可以从isHidden()函数正确地获取状态。奇怪的是,如果我启动dockwidget而不是隐藏,它的工作原理是完美的。我包括一个重现这种奇怪行为的例子。

mainwindow.h

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

namespace Ui {

class MainWindow;

}

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

explicit MainWindow(QWidget *parent = 0);

~MainWindow();

private slots:

void showDock();

private:

Ui::MainWindow *ui;

QDockWidget *dock;

QPushButton *button;

};

#endif // MAINWINDOW_Hmainwindow.cpp

#include "mainwindow.h"

#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::MainWindow)

{

ui->setupUi(this);

// QMainWindow mainWindow;

// QDockWidget *dock = new QDockWidget(&mainWindow);

QDialog *dockDialog = new QDialog(this); //

dock = new QDockWidget(dockDialog);

dock->setStyleSheet("QDockWidget { font: bold }");

dock->setFloating(true);

dock->setFeatures(QDockWidget::DockWidgetVerticalTitleBar | QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetMovable);

QAbstractButton *floatButton = dock->findChild("qt_dockwidget_floatbutton");

if(floatButton)

floatButton->hide();

dock->setAllowedAreas( Qt::NoDockWidgetArea );

dock->setWindowTitle("Tools");

this->addDockWidget(Qt::TopDockWidgetArea, dock, Qt::Vertical);

QMainWindow *window = new QMainWindow(dock); //

window->setWindowFlags(Qt::Widget);

QToolBar *bar = new QToolBar(window);

bar->setMovable(false);

bar->addAction("Select");

bar->addAction("Polygon");

bar->addAction("Brush");

bar->addAction("Erazer");

bar->addSeparator();

bar->addAction("Mark");

bar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);

bar->setOrientation(Qt::Vertical);

window->addToolBar(Qt::LeftToolBarArea, bar);

window->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);

window->setParent(dock);

dock->setWidget(window);

dock->hide(); //

button = new QPushButton("show", this);

button->setCheckable(true);

QObject::connect(button, SIGNAL(clicked()), this, SLOT(showDock()));

}

MainWindow::~MainWindow()

{

delete ui;

}

void MainWindow::showDock()

{

// qDebug() << "hello";

if(button->isChecked()){

if(dock->isHidden()){

qDebug() << "hidden";

dock->setFloating(true); //

QAbstractButton *floatButton = dock->findChild("qt_dockwidget_floatbutton"); //

if(floatButton)

floatButton->hide(); //

dock->show();

}

}

if(!button->isChecked()){

if(!dock->isHidden()){

qDebug() << "not hidden";

dock->hide();

}

}

}因为它现在是上面的代码,dockwidget没有出现在屏幕上。如果您尝试评论我在mainwindow.cpp中指定的行,它可以工作,但重点是我想启动隐藏的dockwidget。有人有任何想法,发生了什么。

谢谢。

qt 无框dockwidget_在qt中显示隐藏的dockwidget相关推荐

  1. excel中显示隐藏的行_在Excel中显示或隐藏用户提示

    excel中显示隐藏的行 When you set up a worksheet for other people to use, data validation messages can help ...

  2. 【CSS】文字溢出问题 ( 强制文本在一行中显示 | 隐藏文本的超出部分 | 使用省略号代替文本超出部分 )

    文章目录 一.文字溢出问题 二.文字溢出处理方案 三.代码示例 一.文字溢出问题 在元素对象内部显示文字 , 如果文本过长 , 则会出现文本溢出的问题 ; 下面的示例中 , 在 150x25 像素的盒 ...

  3. css中显示隐藏div层,JS CSS 显示隐藏DIV 层

    匿名用户 1级 2011-01-12 回答 调整了下标签的位置 一般js要放在css后面 最好js放在dom最后,等待dom解释完毕再执行js代码 无标题文档 #div1{ border:1px #0 ...

  4. mac如何在Finder中显示隐藏的文件或文件夹

    打开终端命令,执行下面的命令,会把原来隐藏的文件全部显示出来,如果想隐藏,那么把true改成false defaults write com.apple.finder AppleShowAllFile ...

  5. qt 无框dockwidget_PyQt5系列教程(52):QDockWidget的使用

    上期我们一起学习了QDockWidget类.主要涉及到以下几个知识点: 1.QQ秀的呈现 2.QStackedWidget类的使用 今天我们一起来学习下QDockWidget类,这个类能够实现在窗口中 ...

  6. 如何在与 WPF 文本框的触摸交互中显示触摸键盘

    Windows Presentation Foundation (WPF) 应用程序在支持触控的世界中会遇到一些困难.在 WinRT 应用程序中,当文本字段获得焦点时,触摸键盘会自动显示,这样用户就可 ...

  7. python弹框倒计时自动关闭_Dialog中显示倒计时,到时自己主动关闭

    这里直接用系统Dialog中加入了倒计时的显示,假设用自己定义Dialog会更美观: private TextView mOffTextView; private Handler mOffHandle ...

  8. android布局中显示隐藏动画

    android 在布局中提供属性,能简单的加入动画效果,例如以下: <LinearLayout...animateLayoutChanges="true"... /> ...

  9. java复选框如何显示在文本雨_java – 在复选框的itemStatechanged事件上显示文本字段...

    如何在Swing中的复选框的itemStatechanged事件中显示文本字段? 我正在尝试使用复选框和文本字段创建框架.我希望仅在选中复选框时才显示文本字段.因此,当我初始化组件时,我将textfi ...

最新文章

  1. Pytorch和CNN图像分类
  2. 刷固件Layer1到手机FLASH(硬刷)
  3. 【AI产品】产品小姐姐分析抖音背后的计算机视觉技术
  4. react native android6+拍照闪退或重启的解决方案
  5. 安全开发流程(SDL、微软)
  6. DIV+CSS 让同一行的图片和文字对齐
  7. 汇编中寄存器加[]的意思
  8. 计算机行业深度分析,广发证券计算机行业深度分析
  9. 有些人,理他就输了!
  10. (js技巧)input文本框回车或者失去光标触发事件
  11. 使用.tar文件 升级cisco 3550 IOS
  12. ad怎么批量改元器件封装_ad16如何批量添加封装库?
  13. Ubuntu18.04安装HP laser 1020打印机
  14. 特拉华大学计算机专业怎么样,最新美国大学CS专业薪资排名,也许这就是你择校的理由!...
  15. Tomcat配置参数优化
  16. 计算机的计算密度相关,专家人才库数据----中国科学院计算技术研究所
  17. three.js例子
  18. CPU架构之ARM优化
  19. ROS tf::TransfromBroadcaster tf::TransformListener listener.lookupTransform listener.waitForTransfor
  20. 数据预处理-缺失值处理

热门文章

  1. matlab中find函数
  2. centos下的AVAST安装和使用
  3. 用旧手机当机顶盒看电视,应该怎样连接?
  4. glPixelStorei 详解 包括像素传输
  5. LaTeX 学习资料汇总
  6. MSSQL更改数据库文件路径
  7. bert:weight和bias
  8. CoolShell-第6题
  9. 推荐COOLSHELL
  10. Windows XP任务栏隐藏解决