标签: qwidget

如何在Qt中创建可扩展/可折叠部分小部件

我想在Qt中创建一个具有以下功能的自定义小部件:

  • 这是一个容器
  • 它可以填充任何Qt布局
  • 它可能在任何Qt布局中
  • 按钮允许垂直折叠/折叠内容,因此只有按钮可见,所有包含的布局都是不可见的.
  • 上一个按钮允许再次展开/展开布局内容的大小.
  • 扩展/折叠基于大小(不显示/隐藏)以允许动画.
  • 可用于QDesigner

为了提供一个想法,这里是一个类似的小部件(而不是Qt)的图像: 在此输入图像描述

我已经有一个正常工作的框架,并在QDesigner中公开.我现在需要让它扩展/崩溃,这似乎并不那么简单.

我尝试使用resize(),sizePolicy(),sizeHint(),但这不起作用:当框架折叠时,我得到以下值:

sizeHint: (500,20)
size    : (500,20)
closestAcceptableSize: (518,150)
Painted size: (518, 150)
Run Code Online (Sandbox Code Playgroud)

QLayout :: closestAcceptableSize不是小部件的一部分,因此我无法更改它.

任何提示或/和代码片段来实现这一点?

编辑:这是一个简单的例子.除了必要的我删除了所有.

main.cpp示例

#include <QWidget>
#include <QPushButton>
#include <QVBoxLayout>

#include "section.hpp"


using namespace myWidgets;
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);


    // Create the main Window
    QWidget window;
    window.resize(500,500);
    window.setStyleSheet("QPushButton:{background-color:rgba(128,128,128,192);}");

    // Create the main window layout
    QVBoxLayout topLayout(&window);
    QWidget *w1 = new QWidget();
    w1->setStyleSheet("background-color:rgba(128,128,128,192);");
    topLayout.addWidget(w1);

    Section section(&window);
    topLayout.addWidget(&section);

    QVBoxLayout inLayout(&section);
    QPushButton *button = …
Run Code Online (Sandbox Code Playgroud)

c++ qt widget custom-controls qwidget

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

QVision Widget编译时出错

只有一个错误,直到我将其用于我的研究!

Warning: Z-order assignment: " is not a valid widget.
FILE: qvvideoreaderblockwidget.ui
Run Code Online (Sandbox Code Playgroud)

它附带没有行号.我试图找到,但没有看到一个开放式的部分.

我该怎么做才能正确编译这个库?

qt compiler-errors widget qwidget

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

QT5.在QML中嵌入QWidget对象

我正在使用Qt5 beta并尝试将基于QWidget的对象嵌入到QML中.目标是尽可能多地使用QML,并且只使用QML不能满足我需要的QWidget对象.我找到了一个解释如何为Qt4.7执行此操作的链接,但我没有找到任何解释如何在Qt5中执行此操作的信息.

http://doc.qt.digia.com/4.7/declarative-cppextensions-qwidgets.html

Qt5示例文件夹中的相同示例也可用于:

实例\ qtquick1 \声明\ cppextensions\qwidgets

不幸的是,这个例子使用QtQuick 1而不是QtQuick 2,我想使用Qt5的新功能.我实际上想嵌入一个qwt小部件,但作为第一步,我很乐意嵌入任何简单的基于QWidget的对象.

任何人都可以帮助我在Qt5/QtQuick 2下工作吗?

qwidget qml qt5

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

QWindow和QWidget有什么区别

Qt 5.0提供了一个新QWindow类.虽然这个类的文档非常全面,但我没有看到QWindowQWidget类有什么不同,在哪种情况下你更喜欢前者.两者都提供了一种方便的方式,可以将各种事物可视化到屏幕上,两者都可以QPainter用于绘图,并且两者都有一种与OpenGL交互的方式.

API描述中,它说:

应用程序通常会将QWidget或QQuickView用于其UI,而不是直接使用QWindow.

所以这似乎不是窗口的优势.此外,它指出:

Windows可能会占用大量内存.通常的测量是宽度乘以高度乘以颜色深度.窗口可能还包括多个缓冲区以支持双缓冲和三缓冲,以及深度和模板缓冲区.

哪个似乎不赞成使用QWindow.那么在什么情况下你会使用它?

qwidget qt5

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

如何设置QWidget宽度?

如何设置QWidget宽度?我知道setGeometry(QRect& rect)这样做的功能,但是在那种情况下我应该使用geometry()函数来获取我的前参数QWidget,然后我应该增加宽度并使用setGeometry(..).有没有直接的方法,说:

QWidget aa;
aa.setWidth(165); //something like this?
Run Code Online (Sandbox Code Playgroud)

c++ qt qwidget

25
推荐指数
4
解决办法
6万
查看次数

Qt增加QTabWidget的QTabBar大小

我需要让我在QTabWidget底部定位的标签更大.我们将使用触摸屏,因此默认尺寸有点小.

我认为没有简单的方法可以做到这一点(目前还没有找到任何好办法.我在QTabWidget中看到的与QTabBar相关的唯一方法受到保护,我认为不需要继承其他类比这个明确的目的).

题:

我想做的是将QTabBar设置为特定的大小.这可能吗?

除此之外,我唯一能想到的是子类化QTabWidget然后我可以通过扩展或覆盖此类的功能来控制QTabBar的大小.

谢谢.

size qt qwidget qtabbar

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

Qt隐藏任务栏项目

我有一个自定义的QWidget,我很简单,不希望它出现在任务栏中.我有一个QSystemTrayIcon来管理退出/最小化等.

qt taskbar qwidget

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

QLayout:尝试将QLay""添加到QWidget"",它已经有了布局

我想创建一些选项卡,我读到了这个答案:如何在PySide中添加选项卡

我在答案中使用代码并进行了一些更改.因为我的代码必须读取一些文件并从这些文件中获取我的选项卡的名称,以便在我的代码中添加for循环.这是我的代码.

from PySide import QtCore, QtGui
import sys
import dflash_controller as con

if __name__ == "__main__":
    list = [['a', 3], ['b', 4], ['c', 5], ['d', 6]]
    app = QtGui.QApplication(sys.argv)
    wid = QtGui.QWidget()
    grid = QtGui.QGridLayout(wid)
    wid.setLayout(grid)

    # setting the inner widget and layout
    grid_inner = QtGui.QGridLayout(wid)
    wid_inner = QtGui.QWidget(wid)
    wid_inner.setLayout(grid_inner)

    # add the inner widget to the outer layout
    grid.addWidget(wid_inner)

    # add tab frame to widget
    wid_inner.tab = QtGui.QTabWidget(wid_inner)
    grid_inner.addWidget(wid_inner.tab)

    # create tab


    for i, index in enumerate(list[0:]): …
Run Code Online (Sandbox Code Playgroud)

python tabs qwidget pyside qlayout

21
推荐指数
1
解决办法
3万
查看次数

如何设置QWidget的用户数据?

我想设置一个整数来存储在一个QWidget,我认为setUserData成员函数会做的伎俩,但我找不到任何文档.任何提示?

c++ qt qwidget

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

如何清除父窗口小部件中的所有窗口小部件?

我正在使用构造函数QWidget(QWidget *parent).此父窗口小部件包含许多子窗口小部件.我需要在运行时从父级清除所有子窗口小部件.我怎样才能做到这一点?

qt qwidget

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

标签 统计

qwidget ×10

qt ×7

c++ ×3

qt5 ×2

widget ×2

compiler-errors ×1

custom-controls ×1

pyside ×1

python ×1

qlayout ×1

qml ×1

qtabbar ×1

size ×1

tabs ×1

taskbar ×1