草庐IT

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

c++ - XCB 错误 : 148 - Qt application display issues

我正在尝试在另一台计算机上运行我的Qt应用程序(它在我开发它的地方完美运行)。当我通过终端启动此应用程序时,出现此错误-QXcbConnection:XCBerror:148(Unknown),sequence:175,resourceid:0,majorcode:140(Unknown),minorcode:20我的程序确实启动并且一切看起来都正常,但是当我运行它时,我在与显示器交互时看到了奇怪的行为(一些绘画命令没有被执行,这对我的应用程序至关重要)。我已经尝试搜索此错误,但到目前为止我找不到任何解决方案。你有什么建议吗?使用ubuntu16.04,Nvidia1050GTXGPU

c++ - Qt 样式表 - 未应用背景属性

我正在尝试使用QtDesigner在QtCreator中创建一个自定义小部件(它本身包含一些子小部件)。在设计器中,我将派生对象ControlBar的styleSheet属性设置为以下值:QWidget{font-family:"SegoeUI";font-size:9;}QWidget#ControlBar{background-color:#3a3a3a;border-width:5px;border-radius:4px;border-style:solid;border-color:#ffffff;}现在在设计器和预览模式(Shift+Alt+R)中一切看起来都很好。我现在的意

c++ - Qt Creator/QMake 链接库

我正在使用SFML,我想结合使用QtCreator。当我手动编译时,我将以下参数提供给链接器-lsfmlsystem-lsfmlwindow。如果我使用QtCreator和(我认为)QMake,我该怎么做? 最佳答案 只需添加LIBS+=-L/path/to/sfml-lsfmlsystem-lsfmlwindow到.pro文件。您可以使用QtCreator从侧边栏的“项目”View打开项目文件,或者通过Ctrl-K搜索它。(顺便说一句,侧边栏不是左边的图标列表,它是右边的Pane,可以用Alt-0显示/隐藏。)