草庐IT

Qt-Quick

全部标签

c++ - Qt:格式化QString中的整数

我想在QString中格式化一个整数.我想总是有6个数字。例如“1”应该是“000001”,“12”应该是“000012”。我试着用printf(%06d,number)来做.所以我写了这个QStringtest;test=QString("%06d").arg(QString::number(i));qDebug()i在循环中实现for.但它不起作用,因为我有:"0d""1d""2d""3d"...有人知道怎么做吗? 最佳答案 String的参数支持不像printf那样工作。这一切都记录在案。你想要的是:QStringtest=Q

c++ - 当 Qt 信号/槽连接失败时,如何提醒我?

当使用connect连接到一个不存在的信号/槽时,我们会浪费很多时间,因为Qt只会在控制台日志记录的某个地方在运行时警告我们.除了进化到使用类型系统报告这些问题的Qt5,以及来自changingcode对于系统中的所有connect调用,是否有另一种方法来拥有Qt运行时,例如当建立错误的连接时抛出,或者只是崩溃,或者大声提醒我? 最佳答案 您可以在连接上使用一个包装器,它会在某些连接失败时停止程序:inlinevoidCHECKED_CONNECT(constQObject*sender,constchar*signal,const

c++ - Qt/C++制作可编辑流程图

我正在制作一个可编辑的流程图,但我在使用Qt时遇到了很多概念上的问题。我已经尝试了许多不同的方法来实现类,包括QTreeWidget、QTableWidget,以及仅使用一堆简单的QPushButtons。理想情况下,我希望有一个设置,我可以在其中右键单击流程的每一部分并对其进行编辑。除了具有拖放功能以重新排列流程中的对象。试图找到一个我可以一起使用的类/类组来实现这一目标一直很困难。哪些类最适合此应用程序;特别是GUI类?编辑的实际内容不应该与我正在寻找我可能错过的建议或方法的GUI相关。除了功能之外,它不必看起来那么花哨;矩形和直线就足够了。到目前为止,我知道如何使用和实现cont

c++ - Qt QGridLayout - 删除项目间距

我正在尝试在Qt中编写战舰的实现,我正在使用两个QGridLayouts来包含用于表示玩家网格的QToolButtons。顶层布局(QMainWindows之一)是QHBoxLayout。我想要完成的是删除这些按钮之间的间距。这是它现在的样子:它绝对不漂亮。我正在像这样将项目添加到这些布局中:QIconicon;icon.addFile(QStringLiteral(":/images/Resources/field_blue.png"),QSize(),QIcon::Normal,QIcon::Off);for(inti=0;isetToolButtonStyle(Qt::ToolB

c++ - Os X Yosemite Qt 拖放文件名错误

我试图在我的Qt应用程序中使用简单的拖放功能。这是我的代码:MyWindow::MyWindow(QWidget*parent){..........setAcceptDrops(true);}voidMyWindow::dragEnterEvent(QDragEnterEvent*e){if(e->mimeData()->hasUrls()){e->acceptProposedAction();}}voidMyWindow::dropEvent(QDropEvent*e){foreach(constQUrl&url,e->mimeData()->urls()){constQStrin

c++ - 如何在 Qt 5 中将 New-Signal-Slot 语法声明为函数的参数

如何将信号或槽(成员函数,Qt5中的新语法)作为参数传递给函数,然后调用connect?例如我想编写一个等待信号的函数。注意:它不是编译-PointerToMemberFunction是我的问题。boolwaitForSignal(constQObject*sender,PointerToMemberFunction???signal,inttimeOut=5000/*ms*/){if(sender==nullptr)returntrue;boolisTimeOut=false;QEventLooploop;QTimertimer;timer.setSingleShot(true);Q

c++ - Qt 删除 QVBoxLayout 上的小部件之间的空白区域

我有一个恼人的问题。我创建了QVBoxLayout,并在上面添加了我的小部件。这是我的构造函数中的示例:layout=newQVBoxLayout;layout->setMargin(0);layout->setContentsMargins(QMargins(0,0,0,0));layout->setSpacing(0);然后我有添加小部件的功能。layout->addWidget(_wave);_wave是我自己的小部件。但是你可以添加任何你想要的,例如QButton。我想要达到什么目的?Similarlikethis但在添加到布局的小部件之间没有任何空格。只有QButtons或其

c++ - 我的 Qt eventFilter() 没有按预期停止事件

我的事件过滤器存在根本性错误,因为它让每个单个事件通过,而我想停止一切。我已经阅读了很多关于QEvent、eventFilter()等的文档,但显然我遗漏了一些重要的东西。本质上,我正在尝试基于QDialog为我的弹出窗口类创建我自己的模态功能。我想实现我自己的,因为内置的setModal(true)包含很多功能,例如正在播放我想排除的QApplication::Beep()。基本上,我想丢弃所有转到创建弹出窗口的QWidget(窗口)的事件。到目前为止,我所拥有的是,//popupdialog.h#ifndefPOPUPDIALOG_H#definePOPUPDIALOG_H#inc

c++ - 如何在 Qt 中使用两个键修饰符设置 3 键序列快捷方式?

我一直在尝试将快捷方式设置为Ctrl+Shift+C。我试过以下方法:QAction*generalControlAction=newQAction(this);generalControlAction->setShortcut(QKeySequence("Ctrl+Shift+c"));connect(generalControlAction,&QAction::triggered,this,&iBexWorkstation::onGeneralConfiguration);QShortcut*generalControlShortcut=newQShortcut(QKeySeque

c++ - QT Text.WordWrap 在 ColumnLayout 中不起作用

我正在使用QTQML开发应用程序。我在使用QML时遇到了一个奇怪的问题。我想使用QML分割和显示长文本。我正在使用QTText执行此任务的元素。我想将此文本放在QTColumnlayout中与其他UI元素。我无法将长文本显示为多行文本。请帮我解决这个问题。这是我的QML代码。importQtQuick2.7importQtQuick.Controls2.0importQtQuick.Layouts1.0ApplicationWindow{visible:truewidth:640height:480title:qsTr("HelloWorld")color:"#18d28a"Colum