标签: qwidget

为什么QWidget的析构函数不是虚拟的?

看看qwidget.h,我发现了析构函数如下:

~QWidget();
Run Code Online (Sandbox Code Playgroud)

我想知道为什么这不是虚拟的

c++ virtual qt qwidget

16
推荐指数
1
解决办法
1890
查看次数

在隐藏子项时调整qt小部件的大小

当重试子项被隐藏时,我将如何调整窗口小部件的大小,使其看起来像在第一个图像中?主要布局是QVBoxLayout,重试子是一个带有QVBoxLayout的小部件.

我尝试过以下方法:

  • 更新()
  • updateGeometry()
  • setGeometry(childrenRect())
  • 布局() - >激活()

一旦我将重试小部件设置为隐藏,就在主小部件上.我是否需要拦截某些事件才能执行此操作?

qt resize qwidget

15
推荐指数
2
解决办法
1万
查看次数

如何在用户调整QMainWindow大小时分配回调?

我也没有在QMainWindow上为resize事件找到类似教程的方案,也没有在Qt设计窗口的下拉菜单中看到任何添加resize事件的选项.

我是Qt的新手.我想为QMainWindow调整大小事件编写一个插槽函数.有这样的事件吗?我怎样才能做到这一点?

qt qwidget

15
推荐指数
2
解决办法
3万
查看次数

什么Qt小部件用于只读,可滚动,可折叠,图标列表

我对Qt比较陌生,并不完全熟悉开箱即用的小部件.我有一个(但不是很)非常复杂的小部件来创建,并且不想重新发明任何轮子.什么是最好的QWidget用作子类和/或QWidgets用于组成我的小部件的起点.这是我正在寻找的最终结果(粗略绘图道歉):

窗口小部件

关键点:

  • 所有图标将占用相同的大小,例如128 x 128.忽略类别分组,它们都应该在一个漂亮的网格中对齐.
  • 小部件应该展开以填充它可以采用的所有水平和垂直区域.水平扩展/收缩可以增加/减少每行中显示的图标数量.
  • 图标被分组,这些组应该是可折叠的.
  • 如果窗口小部件的高度超出其空间,则应显示垂直滚动条.

user-interface qt widget qwidget

14
推荐指数
1
解决办法
3720
查看次数

问:子对象可以在父对象中组合吗?

在Qt中,我可以通过合成将子窗口小部件嵌入其父窗口中,还是必须创建它们new

class MyWindow : public QMainWindow
{
    ...
private:
    QPushButton myButton;
}

MyWindow::MyWindow ()
 : mybutton("Do Something", this)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

文档说任何派生的对象QObject在其父元素被销毁时会自动销毁; 这意味着调用delete,在上面的例子中会崩溃.

我必须使用以下内容吗?

QPushButton* myButton;

myButton = new QPushButton("Do Something", this);
Run Code Online (Sandbox Code Playgroud)

编辑

答案非常多样化,基本上归结为三种可能性:

  • 是的,组成是好的.Qt可以弄清楚对象是如何分配的,只有delete堆分配的对象(这是如何工作的?)
  • 是的,组合没问题,但是没有指定父级,因为父级会调用delete该对象(但是不会将无父小部件变成顶级窗口吗?)
  • ,小部件总是必须进行堆分配.

哪一个是正确的?

c++ qt qwidget qobject

14
推荐指数
2
解决办法
1636
查看次数

复制QWidget

我需要能够复制Qwidget,因此我可以复制一个窗口,因为它会在运行时更改.这可能吗?

void Duplicate(QWidget * Show)
{
 //I tried...
 Qwidget Shw = *Show; //but operator= is private
 //and the copy constructor (I think), which is also private
 Qwidget Shw(*Show);
 //

 Shw.Show();
}
Run Code Online (Sandbox Code Playgroud)

c++ qt copy-constructor qwidget

14
推荐指数
1
解决办法
6971
查看次数

如何从QSplitter中删除QWidgets

在我的应用程序中有一个由QSplitter分割的窗口,我需要删除一个小部件.

我怎样才能做到这一点?我找不到有用的方法

qt parent qsplitter qwidget

13
推荐指数
2
解决办法
1万
查看次数

需要类似QWidget的完成信号

我正在寻找类似于完成信号的东西QDialog,仅用于QWidget.原因是,一旦窗口小部件弹出(我根本不是问题),我禁用我的工具栏,并且我希望在关闭窗口小部件后再次启用工具栏.

我也无法覆盖该窗口小部件的close-Event,因为那时我们将在业务类中使用GUI代码.

qt signals qwidget

13
推荐指数
2
解决办法
2万
查看次数

Qt - QWidget:当没有使用GUI时无法创建QWidget

我正在尝试运行一个简单的Qt程序,当这样做时,我得到一个控制台窗口,提到:QWidget: Cannot create a QWidget when no GUI is being used和第二行This application has requested the Runtime to terminate.....,.exe因此文件停止工作.

我的.pro文件如下:

#-------------------------------------------------
#
# Project created by QtCreator 2011-04-02T07:38:50
#
#-------------------------------------------------

QT       += core

QT       += gui

TARGET = Hello
CONFIG += console
CONFIG += qt
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += main.cpp
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

谢谢.

c++ qt qwidget

12
推荐指数
2
解决办法
2万
查看次数

在调整大小期间保持子类QWidget的宽高比

我正在创建一个新的小部件,通过继承QWidget类.我希望能够为这个小部件设置一个比例(高度和宽度),它将始终保持不变.

为此,我总是使用Qt5文档,Google和Stackoverflow进行搜索.显然,我找到了答案:特别是这一个.但是,不幸的是,甚至没有一个是完全有效的:

  • sizeIncrement即使窗口小部件是窗口,设置也完全没有
  • 我试图重载resizeEvent,但我真的不知道怎么做...
  • 如果我按照这个答案,有两件事:

    1. 如果小部件是顶级窗口,则根本不保持比例,我可以根据需要调整大小.
    2. 如果我将此小部件放置在布局中,如果我只增加窗口的宽度和高度,则保持该比率.但是一旦我将宽度或高度增加到很多,小部件就会变平.相反,我希望布局自动调整其大小以保持小部件的比例.

那么,我怎样才能保持子类QWidget的宽高比?

c++ qt qwidget

12
推荐指数
2
解决办法
4643
查看次数