jjzjj

c++ - QScrollArea 小部件内容提升为 QWidget

首先,感谢您花时间阅读我的问题。我创建了自己的QtWidget(QWidget的父级),并且“内部”有一个QImage来处理图像。我遇到的问题如下:当我将QScrollArea(QDesigner)的内容提升到我的小部件时,滚动功能不起作用;当我使用“ensureVisible(..)”方法时,我没有任何滚动条或看不到任何结果。请告诉我是否需要重载或覆盖我自己的小部件中的任何方法。提前致以问候和感谢,奥斯卡。代码:目的是直接使用myWidget(在QDesigner中推广它),我不直接使用QImage,因为我想在小部件中保存一些额外的数据。structmyData{QImagemyIm

c++ - 使用 QWidget::render() 绘制绘制其他小部件的小部件(自定义 paintEvent)

我正在使用Qt和C++创建一个自定义小部件,我称之为ThumbnailView,它允许左右滚动缩略图:classThumbnailView:publicQWidget{public:virtualvoidpaintEvent(QPaintEvent*);private:QListthumbList;};ThumbnailView保留了一个Thumbnail对象的内部列表,这些对象也是QWidget对象:classThumbnail:publicQWidget{public:virtualvoidpaintEvent(QPaintEvent*);};我将ThumbnailView嵌入到我

c++ - 为 QDockWidget 禁用分隔光标

我有以下小部件结构。CDockWidgetInfoBar只是一个QDockWidget派生类当我移动到QDockWidget(CDockWidgetInfoBar)上时,我看到了这个分隔光标。它是从哪里来的?我可以禁用它吗?它是QDockWidgetLayout的一部分吗?但是,QDockWidgetLayout是Qtprivate不得使用。有什么想法吗? 最佳答案 这对系统来说似乎是不可能的或极其痛苦的。我在这里尝试这样做:HowcanIpreventtransformcursortoSplitHCursorwhenit'sund

c++ - 滚动时Qt List Widget动态内容加载

我想为Qt(不是QML)创建一个小部件,它派生自QListWidget等,并在向上/向下滚动时动态加载内容,就像大多数Android/iOS应用程序一样。有人知道哪种方法最好吗?干杯, 最佳答案 动态加载内容并不意味着它是无限的。为此,只需实现模型的fetchMore()和canFetchMore()方法。 关于c++-滚动时QtListWidget动态内容加载,我们在StackOverflow上找到一个类似的问题: https://stackoverflow

c++ - 将类名插入容器

我有几个派生自QWidget的类我也有这样的模板函数templateQWidget*create(){returnstatic_cast(newT());}现在我要创建容器:QMapclasses//itisnotcompiling因此,我可以将容器值用作函数模板类型:QWidget*widget=create();我应该怎么做? 最佳答案 类不是C++中的一流对象(即它们不是可以传递或存储在容器中的数据)。有一些东西与类“名称”相似,但实际上您不能保证它是一个可读的名称,并且无论如何您都不能创建给定该名称的实例。你可以做的是制作一

c++ - Qt : AddressBook tutorial 中的内存管理

到目前为止,我已经了解到,当父对象被删除时,Qt会释放所有子对象的内存。此外,通常不必关心在堆栈上创建的对象(即不是指针)的内存管理。现在,当我做得很好的时候"AddressBook"tutorial,我在第5部分找到了这个:AddressBook::AddressBook(QWidget*parent):QWidget(parent){dialog=newFindDialog;}完整的源代码可用:addressbook.haddressbook.cppfinddialog.h这里,dialog是AddressBook的私有(private)成员,它是指向FindDialog的指针。F

c++ - 在 Qt 上如何设置每列 33% 的 3 列布局?

我有一个3列布局,我正在努力寻找一个解决方案,以便在33%上设置3个流体列。 最佳答案 我想你正在寻找这个:voidQBoxLayout::addWidget(QWidget*widget,intstretch=0,Qt::Alignmentalignment=0)Addswidgettotheendofthisboxlayout,withastretchfactorofstretchandalignmentalignment.ThestretchfactorappliesonlyinthedirectionoftheQBoxLay

c++ - 从 QWidget 中获取对象名称(从 Qt Designer 中可以看出)?

我想在我的Qt应用程序中禁用除了选定的一组小部件之外的所有小部件。我想做的是使用findChildren迭代mainWindow的所有子项,并使用setEnabled(false)禁用除“myTable”之外的所有结果小部件。QListallWidgets=mainWindow->findChildren("");QList::iteratorit;for(it=allWidgets.begin();it!=allWidgets.end();it++){if((*it)->objectName()!="myTable")//here,objectNameisnotworking!!{(

c++ - 在构造函数的初始化列表中使用 "this"对 Qt 特别危险吗?

我需要关于“这个”主题的可靠信息:classMyClass,publicQWidget{public:MyClass(QWidget*parent=NULL):QWidget(parent),mpAnotherWidget(newQWidget(this)){};private:QWidget*mpAnotherWidget;};当然,在构造器或初始化列表中调用虚函数不是一个好主意。问题是:这段代码可以吗mpAnotherWidget(newQWidget(this))导致未定义的行为?!如果是这样:为什么?如果可以,请引用您的消息来源!谢谢! 最佳答案

c++ - 配置 QWidget 以通过布局填充父级

我正在开发一个QMainWindow应用程序,遇到了以下问题:我有一个QMainWindow,它有一个QWidget作为centralWidget而这个小部件又有另一个QWidget作为child完全填满第一个(见下面的代码)。为了实现这一点,我使用了布局。但是在将第二个小部件放入布局并将该布局应用于第一个小部件之后,第二个小部件仍然不会更改其大小,尽管第一个小部件会更改(在调整主窗口大小时)。我将第一个小部件的背景色设置为绿色,将第二个小部件的背景色设置为红色,因此我希望生成的窗口完全是红色,但我得到以下输出:我需要做什么才能使第二个小部件填充第一个小部件并相应地调整大小?主窗口:#