- 博客(14)
- 资源 (2)
- 收藏
- 关注
原创 获取字符串中第N次出现指定字符串的位置
int indexOfNthStr(QString sourceStr, QString str, uint N){ int index = -1; while(N--) { index = sourceStr.indexOf(str,index+1); if(index == -1) { break; } } return index;}
2022-05-13 19:14:03
1057
原创 [Qt]文件夹创建、删除(递归)
bool delDir(const QString &path){ if (path.isEmpty()) { return false; } QDir dir(path); if (!dir.exists()) { return true; } dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot); QFileInfoList file.
2022-05-13 18:16:04
1023
原创 [Qt]QLineEdit的editingFinished()信号无法触发的问题
场景:在lineedit编辑框编辑完成之后,执行某些操作,发现槽函数无法执行。检查发现,问题出在这里QRegExp regx("[a-zA-Z0-9\-_)(#]{25}");QValidator *validator = new QRegExpValidator(regx, ui->lineEdit);ui->lineEdit->setValidator(validator);我给这个控件设置了setValidator。再看Qt的帮助手册:当按下 Ret
2022-03-12 15:40:31
2717
1
原创 [Qt]读写Excel文件
pro文件:QT += axcontainer读Excel文件:bool readExcel(){ QString FilePath = "1.xls"; QFile excelFile(FilePath ); if(!excelFile.exists()) { return false; } QAxObject *excel = new QAxObject(this); //连接Excel控件 i
2021-10-21 18:56:58
934
原创 [Qt]Tcp Server模拟Http Server实现Web实时监控(画面+数据)
实现这个功能我们需要继承重写两个类,一个是线程QThread,一个是Tcp Server,线程是为了把数据通信和主线程分开,避免阻塞,Tcp Server就不用说了,用来应答浏览器及数据通讯。我们可以先看头文件,两个类:class HttpSendThread : public QThread{ Q_OBJECTpublic: HttpSendThread(QObject *parent = nullptr):QThread(parent) { } ~H
2021-10-06 19:59:10
1031
原创 [Qt]QTableWidget的一个坑(中文输入法下,输入时引起Stack overflow崩溃)
复现步骤,单击QTableWidget的某一行,然后直接按字母(选中但未进入编辑状态,此时是中文输出法,英文输入法不会出现崩溃),然后就崩溃了。崩溃位置在:解决方法:ui->tableWidget->setInputMethodHints(Qt::ImhHiddenText);设置属性即可。...
2021-09-19 17:20:39
1861
5
原创 [Qt]windows下,根据进程名,清理后台中某个进程(也能用于实现单一程序)
由于项目中遇到UDP去bind某个端口,所以如果程序已经打开过了,或者程序崩溃了,然后存在于后台程序中,那么我新打开的程序的UDP去bind那个端口,就会bind失败。所以为了避免在启动程序的时候后台已经有一个的情况,我采用的是获取进程,筛选,然后根据PID,调用系统命令去kill掉它。原理就是:通过tasklist.exe获取任务列表,放到QString里,然后进行split分割,具体可以打印QString看看,我这里使用的是split("\r\n");然后对得到的QStri...
2021-08-23 19:08:31
452
原创 [Qt]多线程同步-QWaitCondition用法
一个线程中调用QWaitCondition::wait()时,会阻塞在这里等待,直到QWaitCondition::wakeAll()被调用。QWaitCondition通常需要和QMutex一起使用,下面我们直接来看例子:假设functionA()functionC()在同一个线程,functionB()在另一个线程,如果我们需要A、B、C按顺序执行,那么我们可以这样写:QMutex m_mutex;QWaitCondition m_WaitCondition;线程1:v.
2021-08-09 19:30:42
844
原创 [Linux]关于归档、压缩、解压(*.tar.gz,*.tar.bz2,*.tar.xz ,*.zip)
将file1 file2 归档: tar cvf xxx.tar file1 file2查看xxx.tar: tar -tf xx.tar释放tar : tar xvf xx.tar将file1 file2 归档并压缩成gz: tar czvf xx.tar.gz file1 file2 解压tar.gz:...
2021-07-30 18:48:26
220
原创 [Linux]关于网卡配置文件
文件通常是:/etc/network/interfaces静态ip网卡配置文件: auto eth0 iface eth0 inet static address 192.168.10.103 netmask 255.255.255.0 gateway 192.168.10.1 nameserver 202.96.128.86 “auto eth0”表示网卡随系统自动请; “iface eth0 inet static”表示网卡为静态ip地址, “address 192.168..
2021-07-30 18:38:01
2297
原创 [Qt]关于多网卡UDP广播
首先是socket的创建:(m_udpSocketlist的定义 QList<QUdpSocket *> m_udpSocketlist;)QList<QNetworkInterface> networkinterfaces = QNetworkInterface::allInterfaces(); foreach (QNetworkInterface interfaces, networkinterfaces) { foreach (Q
2021-07-30 18:27:23
2451
原创 [Qt]调用windows进程(打开文档,打开图片,打开文件夹...)
QString fileName(qApp->applicationDirPath() + QStringLiteral("/Help/使用手册.doc")); if (!QDesktopServices::openUrl(QUrl::fromLocalFile(QFileInfo(fileName).absoluteFilePath()))) { QMessageBox::information(this, tr("BarcodeScaner"), .
2021-07-12 15:42:27
1320
Qt修改按钮边框后,按钮变得很小,为什么?
2022-09-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人