草庐IT

c++ - Qt 在布局中自动排列小部件

我是Qt的新手,有一个我无法解决的问题。我有一个滚动区域,我向其中添加了小部件(小部件是什么并不重要)。每个小部件都有一个静态大小,并且它们都具有相同的宽度(这可能很重要)。我想要做的是拥有一个布局/设置,以便所有这些小部件水平显示在滚动区域上,直到没有足够的空间容纳另一个小部件,此时它开始将小部件放在新行上,继续直到没有剩下。我已经考虑过手动实现它的方法,但我觉得这是Qt已经支持的东西,我只是没能找到它的文档。 最佳答案 你可以看到FlowLayoutExample.它演示了一个自定义布局,该布局从左到右、从上到下排列子窗口小部件

c++ - 如何更改 MDI 子窗口图标?

请看下图:我已经动态创建了子窗口。我尝试使用setWindowIcon函数,如下所示:mdiWindows->setWindowIcon(QIcon("icon.ico"));但效果不佳。另请参阅以下代码(MDI窗口创建):QWidget*widget=newQWidget(this);QTextEdit*TextEdit=newQTextEdit(widget);TextEdit->setObjectName("myTextEdit");QMdiSubWindow*mdiWindows=ui->mdiArea->addSubWindow(widget);mdiWindows->set

c++ - 使用 Qt 和 QNetworkRequest 恢复失败的 HTTP 下载

我正在尝试为我正在开发的应用程序添加自动更新功能。我将此功能基于QtHTTPExample(根据我的意思是我准确地复制了这个例子然后从那里开始)。它正在下载一个ZIP文件,然后提取其内容来为应用程序打补丁。下载时偶尔会出现连接失败,下载停止的情况。为了更加用户友好,我想我应该为下载器添加自动重启功能,如果下载失败,它会尝试重新启动一次。以下是我的代码的亮点-方法名称与示例中的方法名称相匹配:voidAutopatcher::httpReadyRead(){//fileisaQFilethatisopenedwhenthedownloadstartsif(file){QByteArray

c++ - 使用 Qt5 从网络摄像头录制视频

我已经尝试让它工作2天了,我很绝望。基本上我想用我的网络摄像头使用Qt5录制视频。到目前为止,我可以获得一个小部件来显示网络摄像头所看到的内容,但出于某种原因,每当我尝试使用QMediaRecorder类记录它时,它都不会将任何内容保存到outputLocation。输出文件已创建但包含0个字节。我试过使用视频编解码器的设置,但仍然没有成功。我认为像这样的简单代码会起作用:QCamera*camera=newQCamera(QCameraInfo::availableCameras().at(0));QCameraViewfinder*viewFinder=newQCameraView

c++ - 在 Qt 中创建一个简单的表格单元格

我想在Qt中创建一个简单的表格单元格。所以我写了下面的代码主窗口.cpp#include"mainwindow.h"#include"ui_mainwindow.h"#include#includeMainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow){ui->setupUi(this);QTableView*view=newQTableView;QStringListModel*model;view->setModel(model);view->show();model->set

c++ - Qt获取应用程序窗口外的鼠标事件

首先,我不确定如果不对X.11输入进行某种黑客攻击,这是否可行,但discussions我见过online让我觉得这是可能的。请允许我解释一下我希望做什么。我想要一个Qt应用程序,它很可能只是一个小窗口,位于屏幕的一侧,有点像一个小部件。在用户将另一个应用程序窗口拖到它上面之前,应用程序什么都不做。我希望检测到这一点的方法是跟踪鼠标并查看左键单击是否按下并且鼠标是否在Qt窗口上方并且Qt不是事件窗口然后执行一些操作。但是,当我的Qt应用程序不是事件窗口时,目前我无法获取鼠标事件。我认为我链接的其中一些帖子将“窗口”称为QApp内的QWindow。然而,我所说的窗口是X.11窗口,任何在

c++ - 如何获取行数

我想从上次查询中获取行数。我使用了size()和numRowsAffected()函数,但它们都不起作用。我写了下面的代码:intcounter=0;QStringListTableHeader;QSqlQueryqry;qry.prepare("SELECT*,(SELECTCOUNT(*)FROMusers)AScountFROMusers");qry.exec();qDebug()tableWidget->setRowCount(10);ui->tableWidget->setColumnCount(3);TableHeadertableWidget->setHorizontal

c++ - 如何使用线程创建图像缩略图

我使用QTreeView获取图像路径,然后我使用QListView将特定路径中的图像显示为缩略图。期间的问题,创建并显示缩略图。前面的过程,需要很长时间才能完成,取决于图像的数量。出于这个原因,我决定使用线程,也许有助于防止应用程序中发生的挂起并提高创建和显示缩略图的速度。voidmainWidget::on_treeView_clicked(constQModelIndex&index){filesModel->clear();QFileSystemModel*sysModel=qobject_cast(ui->treeView->model());QDirdir(sysModel-

c++ - 在 QLineEdit 中接收转义事件?

这是一个有点初学者的问题,但我没有找到解决方案。我正在使用一个自己的对象,该对象继承自QLineEdit并接收数字作为输入(现在可以顺利运行)。现在我想在用户按下Escape按钮时接收一个事件。textChanged()事件不会发生这种情况。根据文档,没有特殊的逃生事件。那么,还有什么方法可以做到这一点呢?谢谢! 最佳答案 我遇到了同样的问题。我正在通过实现keyPressEvent来解决它在我的QMainWindow.voidMainWindow::keyPressEvent(QKeyEvent*e){if(e->key()==Q

c++ - 翻译在 Qt 中不起作用

我一整天都在谷歌上搜索解决方案并更改我的代码,但没有成功。基本上,我已将翻译添加到我的应用程序中。它工作正常,除了这里:QStringMainWindow::getMessage(Messagesmsg){staticconstchar*constmessages[]={QT_TR_NOOP("Settingpoweron"),QT_TR_NOOP("ReadingID..."),QT_TR_NOOP("Programming..."),QT_TR_NOOP("Settingwrite-protect"),QT_TR_NOOP("Finishedok"),QT_TR_NOOP("PRO