草庐IT

Qt-Quick

全部标签

c++ - Qt 连接功能 - 使用 lambda 进行信号消歧

这个问题在这里已经有了答案:ConnectingoverloadedsignalsandslotsinQt5(4个答案)关闭6年前。我正在使用c++11连接语法,并通过此连接语句得到以下错误:connect(fileSystemCompleter,&QCompleter::activated,[&](QModelIndexindex){fileSystemPathEdit->setFocus(Qt::PopupFocusReason);});错误:errorC2664:'QMetaObject::ConnectionQObject::connect(constQObject*,cons

c++ - Qt 信号 lambda 导致 shared_ptr 泄漏?

我有以下代码:#include#include#include#includeclassDocument{public:Document(){qDebug("Document");}~Document(){qDebug("~Document");}QUndoStackmUndostack;};classDocumentRepository{public:DocumentRepository(){qDebug("DocumentRepository");}~DocumentRepository(){qDebug("~DocumentRepository");}voidAddDoc(std

ubuntu(任何更新版本)安装QT5.12QT

QT12.12是博主自用最多的一个版本,所以选用这个版本作为演示。有一点需要说明到2023年11月以来整个QT5版本里面,QT5.15版本是唯一需要在线更新的版本,也就是官方找不到离线安装包,QT15是中文界面其UI也做出了改变,而QT6也是新出的版本存在一定的兼容性,广大学子如果学习的其他博主的文档或者视频时最好跟着配套的版本安装不一定跟着博主。文章最开始是准备使用QT5.15演示的,但是发现5.15也成在线安装的了,QT5.13又没有过就用QT5.12了,文中有个报错使用的就是在线的版本,但是依赖已经安装了,没有更新的截图,所以版本问题不要纠结,跟着文章走就是了。而且在线和离线安装包安装的

c++ - 在 Qt 中有效地绘制物理上准确的标尺

我有一个标尺类(称为Graduation),它使用方向来计算应该在何处绘制线条。所以像这样:当方向设置为Qt::Horizo​​ntal时,我执行line_xpos=precendent_line_xpos+number。然后如果方向是Qt::Vertical我添加到y位置。我在下面有一些代码,它是我如何使用if...else和?:语句执行此操作的示例:/*std::vectorm_lines;*/voidGraduation::resizeEvent(QResizeEvent*event){qrealnewLength=(m_orientation==Qt::Horizontal)?

C++ Qt 基类虚析构函数

我们是否需要一个用于Qt-way的类的虚拟析构函数:设置QObject-parent它将调用QObject的析构函数deleteLater()或对于它被设置为父对象的任何对象,是否有类似的东西?例如:classMyWidget:publicQWidget{public:MyWidget(){w=newQWidget(this);//"w"willbedeletedautomaticallybyparentMyWidget::QWidget::QObject'sdestructorafaik}private:QWidget*w;}如果MyWidget类要被继承,我们是否需要一个虚拟析构函

c++ - Qt:如何检测一个widget是否被选中?

我没有看到任何信号/槽/函数可以告诉我鼠标是否选择了一个小部件?有没有可能有这样一个函数告诉我当前QWidget是否被选中?我如何区分“选择了当前小部件”和“选择了它的一个子小部件?” 最佳答案 您可以使用hasFocus()函数检查小部件的焦点。focus属性保存小部件是否具有键盘输入焦点。您还可以使用QApplication::focusWidget()获取具有焦点的应用程序的当前小部件。您可以获得指向焦点小部件的指针,例如:QWidget*fw=qApp->focusWidget();当焦点小部件改变时QApplication

c++ - 设置 Qt QPushButton 弹出菜单的位置(向右)

我正在为Qt按钮小部件编写弹出菜单。每当单击按钮时,都会弹出一个菜单(在按钮下方)。弹出菜单默认位于下方左侧。有没有办法让弹出菜单在按钮下方的右侧弹出?没有设置位置功能,所以我想知道是否有一些复杂的方法可以做到这一点?这是一些代码(用于弹出菜单):QMenu*menuMode=newQMenu(this);min=menu->addAction("In");mout=menu->addAction("out");ui->pushButtonMode->setMenu(menuMode);//IamwritinginMainWindow,that'sthereisui

c++ - 如何在 Qt 中以编程方式调整拆分器小部件的大小?

我使用QSplitter并排放置一些小部件。作为用户,我只需拖动分隔条即可调整这些小部件的大小。作为一名程序员,我现在不知道如何准确指定我想要的宽度和高度。这是我的原始状态(通过不同的拉伸(stretch)调整)。我尝试使用setFixedSize(),但在该调用之后,用户无法再自行调整小部件的大小(这绝对是正确的行为,因为大小已“固定”)。如果我使用resize(),它几乎没有效果。小部件已调整大小,但(!)不正确,并且(!)当我再次开始拖动时,小部件将获得其初始状态。有什么方法可以正确调整代码中左侧小部件的大小吗?我不想有固定大小,但resize()不能正常工作,如您所见。那我该怎

c++ - QSettings(Qt 5.4) : setValue doesn't work properly

在我的.cpp中,我正在使用QSettings。这以前在Qt4.8中有效:#include----------QSettingssettings;settings.setValue("time_axis_direction",1);inttest_var=settings.value("time_axis_direction").toInt();----------test_var程序返回0,请问是什么原因?我将Qt与VS插件一起使用。 最佳答案 根据docs,你必须设置组织名称和应用程序名称:QCoreApplication::s

c++ - 编译 Qt-base : error: libQt5Core. so.5: 没有可用的版本信息

我是从源代码qt-base编译的。我构建了其中一个测试(tst_qdom),但在执行时出现错误。这是ldd的结果:lddtests/auto/xml/dom/qdom/tst_qdom**tests/auto/xml/dom/qdom/tst_qdom:/usr/lib/x86_64-linux-gnu/libQt5Core.so.5:noversioninformationavailable(requiredbytests/auto/xml/dom/qdom/tst_qdom)tests/auto/xml/dom/qdom/tst_qdom:/usr/lib/x86_64-linux