问题标签 [qwidget]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
935 浏览

c++ - 如何在 Qt 的后续函数调用中访问在函数中创建的小部件

所以目前我有代码,在 C++ 中,当从 QComboBox 进行选择时,它会创建一些 QLabel、QLineEdit 和 QCheckBox。但是,如果从组合框中进行了新的选择,我希望能够访问我在以后的函数中创建的小部件以销毁它们。我可以通过执行 ui-> Object来访问使用 Designer 创建的对象,但我无法使用我自己的代码创建的对象来执行此操作。我可以这样做吗,因为我知道如何使用它。

简而言之,我希望能够根据用户所做的选择动态地创建/销毁 QWidget。是否有我应该知道的参考资料或任何文档?还是我只是完全以错误的方式解决这个问题?这是我目前用于创建对象的代码:

0 投票
1 回答
1557 浏览

qt - 移除子元素后调整 Qt 窗口的大小。

我有一个QWidget窗口,其中包含一个QSplitter. 我在分离器的左侧和右侧都有一个QStackedLayout(在容器内)。QWidget主应用程序位于左侧区域,可以触发QWebViews出现在右侧。当我删除 rightQWebView时,Window 尝试调整大小,但保持在QWebView. 当我尝试拖动窗口时,它会捕捉到拆分器左侧的位置。

我希望窗口在从右侧删除最后一个小部件时仅显示拆分器的左侧QStackedWidget。我尝试了各种咒语,但我不太了解 Qt,并且正在尝试边走边学。

下面的代码是在 Java 中,使用 Jambi 包装器。C++ 中的概念应该是相同的,如有必要,我可以将任何其他语言绑定翻译到占碑。

我尝试在添加和删除小部件时设置窗口最小宽度RightStackedLayout,但这在某些情况下会破坏拆分器句柄。我认为这是一种黑客解决方法。如果有人能指出我正确的方向,让拆分器右侧的更改更新顶级窗口,我将不胜感激。

0 投票
1 回答
1399 浏览

qt - 从插件 (.so) 加载 Qt UI(带图像)时遇到问题

我有一个插件,它加载并显示一个自定义小部件,该小部件显示从资源文件 (resources.qrc) 加载的图像(作为 QLabel 的背景)。我面临的问题是,加载插件后,它会正确显示小部件,但不会显示图像。我尝试将“Q_INIT_RESOURCE(资源)”放在任何地方,但没有任何反应。我创建了许多使用 qrc 文件来显示图像的自定义小部件,但只能直接在应用程序中使用,效果很好。这次是来自插件,所以这里一定有我遗漏的东西。有什么帮助吗?

0 投票
1 回答
1531 浏览

python - ScrollArea 中的自定义小部件被压扁了!

我有一个 qscrollarea 和一个 qgridlayout。在网格布局中,我创建了许多自定义小部件(为简单起见,这些小部件只是一个组框和一个标签)并在每一行添加一个。

自定义小部件不显示垂直滚动条,而是全部压缩以适应滚动区域的大小。

我通过以下方法将自定义小部件添加到滚动区域:

自定义小部件扩展了 QWidget 并重新实现了 sizeHint:

正在调用 sizeHint 方法,但小部件仍被压缩到小得多的高度。自定义小部件中的所有元素都有固定的宽度和高度,最小和最大高度和宽度设置为 660、300。

有人有什么建议可以试试吗?谢谢!

附加信息:滚动区域位于 MainWindow 中,widgetResizable 布尔值设置为 False。

明天我将尝试删除自定义小部件,看看是否可以让 scrollArea 与常规小部件一起使用。

0 投票
2 回答
8079 浏览

qt4 - 如何强制 QWidget 在单独的窗口中显示?

我有

和主窗口MainWindow w;

我想

  1. 从创建 MyWidget 的新实例w
  2. 该实例将在之后QCloseEvent或之后被销毁w(现在它们仅在之后被销毁QCloseEvent);
  3. 该实例出现在新窗口中。

我正在创建MyWidget这样的新实例:

当我尝试widg使用was创建时parentwidg出现在w(左上角)的内部。

解决这个问题的最简单和最清晰的方法是什么?

谢谢!

0 投票
1 回答
601 浏览

qt - ui 在构造函数外部访问时导致 SIGSEGV

当我尝试从构造函数外部访问 ui 时,我得到一个 SIGSEGV 信号,该错误是在 prepareQuestions 函数底部的 cpp 文件的最后一行引起的

我尝试将其减少到尽可能小的代码:

标题:

cpp文件:

我主要在哪里建造

我把 QuestionDialog 放在首位:

注释错误行时的 gui(请注意更改 lbl_question1 不起作用) http://i77.photobucket.com/albums/j74/bertyhell/gui.png

使用调试器出错:

http://i77.photobucket.com/albums/j74/bertyhell/seg_fault.png

0 投票
1 回答
4893 浏览

qt - QStyledItemDelegate - updateEditorGeometry 如何工作?

我正在使用 Qt 4.7。

我有一个模型,我QTableView在两列中显示,我的目标是在我的QTableView.

第一列可以通过简单QComboxBox的左右切换来编辑,效果很好。问题出在我的第二列,可以使用自定义小部件进行编辑。

这个小部件有点简单,它描述了一个范围。所以有一个 QComboBox 来选择范围的种类(“固定”:值由用户给出,“源”:值从源的最小值/最大值动态调整)。

这是我的自定义小部件的源代码:

好的,现在,我创建了一个 QStyledItemDelegate 来为视图提供我的列的自定义编辑器。这是我的做法:

基本上,我得到的是一个单像素高度编辑器。

这是结果的屏幕截图:截图1

我尝试更改updateEditorGeometry为以下内容:

这似乎解决了大小问题,但不是位置: 在此处输入图像描述

我感到有点失落,因为我不知道问题是来自我的自定义小部件(没有为 Qt 提供足够的信息来正确计算其位置),还是视图(可能是一些会破坏编辑器大小的边距),或者updateEditorGeometry()方法。

非常感谢任何帮助,感谢您的阅读!

0 投票
2 回答
2295 浏览

events - 未收到 QWidget focusOutEvent

我通过子类化 QLineEdit 和 QCalendar 创建了一个日期输入。当收到 mousePressEvent 时,日历会显示在 QLineEdit 的底部。问题在于隐藏该日历。我已经覆盖了它的 focusOutEvent,因为我希望它在用户单击其他地方时关闭。但是根本没有收到这个事件,我通过在其中设置断点来确认这一点,它永远不会停在那里。我已经打电话给close()它:

当我从 DateLineEdit 关闭它时,它按预期工作:

0 投票
5 回答
20795 浏览

c++ - 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文件如下所示:

有什么想法吗?

谢谢。

0 投票
4 回答
3482 浏览

c++ - Qt - QWidget 到底是什么

C++ GUI Programming with Qt 4本书中,它在第一章的一个示例中提到了QWidget用作应用程序的主窗口

而且,在Qt Reference Documentationhttp ://doc.qt.io/qt-4.8/qwidget.html上有很多关于 QWidget 的信息。

但是,底线是什么?QWidget主要做什么?我应该什么时候考虑?