当前位置: 首页>Php>正文

qt設置控件在布局的位置,Qt自定義控件(IP輸入框,windows下)

qt設置控件在布局的位置,Qt自定義控件(IP輸入框,windows下)

1.建立自定義控件項目

qt設置控件在布局的位置、

?組代表后來能從哪里找到

剩下的點“下一步”就行了

2.編輯代碼

在生成項目的cpp中添加自己的內容(沒有.ui界面了,設計tab是灰色的)?

qt獲取本機ip地址?

?放一下我的代碼

3.構建

(注意,因為沒有main函數和主程序,所以無法運行,構建出動態庫就是目的)

windows ip配置、IPv4的ip地址格式:(1~255).(0~255).(0~255).(0~255)

另外的知識:計算機網絡基礎(五)---網絡層-IP地址的子網劃分 - 知乎 (zhihu.com)

所以我進行分割,對每個進行判斷來簡化判斷,放出代碼

qt自定義控件,

以下是 ipinput.h

#ifndef IPINPUT_H
#define IPINPUT_H#include <QWidget>
#include <QLineEdit>class IPinput : public QWidget
{Q_OBJECT
public:IPinput(QWidget *parent = 0);QString GetIP();
private slots:void Judge(QString str);
private:QLineEdit *m_lineEdit;QString previousIP;
};#endif

以下是 ipinput.cpp

#include "ipinput.h"
#include <QRegExp>
#include <QRegExpValidator>IPinput::IPinput(QWidget *parent) :QWidget(parent)
{m_lineEdit = new QLineEdit(this);connect( m_lineEdit,SIGNAL(textChanged(QString)) ,this,SLOT(Judge(QString)) );//正則限制只能寫數字和符號.QRegExp regExp = QRegExp("[0-9\\.]*");//只能輸入數字和小數點m_lineEdit->setValidator(new QRegExpValidator(regExp, m_lineEdit));
}void IPinput::Judge(QString str)
{QStringList a = str.split(".");//分割每個小ipif(a.size()>4){m_lineEdit->setText(previousIP);//還原return;}for(int i=0;i<a.size();i++){QString temp = a.at(i);//多個0if(0==temp.toInt()&&temp.count('0')>1){m_lineEdit->setText(previousIP);//還原return;}//超范圍了if(0>temp.toInt()||255<temp.toInt()){m_lineEdit->setText(previousIP);//還原return;}//都大于0了第一位還是0if(0<temp.toInt()&&temp.left(1)=="0"){m_lineEdit->setText(previousIP);//還原return;}}previousIP = str;//合格,設定為當前字符串
}//對外用,獲取ip
QString IPinput::GetIP(){QRegExp regExp("((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])[\\.]){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])");//不合法返回-1if( regExp.exactMatch(previousIP) )return previousIP;elsereturn "-1";
}

以release模式編譯構建

qt輸入框?找到生成目錄,在你的編譯目錄下,會有dll文件和lib(MinGW編譯的是.a文件)

找到動態庫,把動態庫,也就是圖上的.dll(windows的)文件

?拷貝到如下2個目錄:

1.Qt的安裝目錄【我的是 C:\Qt\Qt5.7.0\5.7\mingw53_32\plugins\designer\】

2.Qt Creator的安裝目錄【我的是 C:\Qt\qtcreator-4.4.1\bin\plugins\designer\】

---然后好像是我生成的.a文件不被Qt Creator用MSVC所兼容,失敗了!

4.引用

??將生成并安裝的.so?文件復制到qt creator的安裝目錄bin/designer?中這樣再次打開?qt creator就可以在designer窗口中看到自定義的控件了。可以想使用別的qt自帶的控件一樣使用它。

將?編寫自定義控件中所編寫的.h .cpp .pri文件拷貝到使用該控件的項目的目錄下。

在使用該控件的項目的.pro文件中加入include (***.pri)就可以編譯運行了。

參考資料:

QT自定義控件(生成和使用) - OSJ - OSCHINA - 中文開源技術交流社區

利用QT制作自定義控件_yanchong_RD的專欄-CSDN博客

Qt添加自定義控件_逐夢的博客-CSDN博客_qt自定義控件

https://www.nshth.com/php/338523.html
>

相关文章:

  • qt設置控件在布局的位置
  • qt獲取本機ip地址
  • windows ip配置
  • qt自定義控件
  • qt輸入框
  • qt設置窗口位置
  • qt插件管理器
  • qt自定義控件開發教程
  • 語言使用排行榜,PHP2020語言排行榜,TIOBE公布了2020年12月編程語言排行榜
  • 你好,爬取《你好,李煥英》影評,并生成詞云圖
  • php手冊中文版,PHP筆記 17 18 19 20 21
  • ubuntu怎么切換中文輸入法,ubuntu系統配置中文輸入法以及安裝ros2,docker等開發環境
  • qt設置控件在布局的位置,Qt自定義控件(IP輸入框,windows下)
  • 計算機初級考試內容自測題,計算機基礎知識考題及答案,計算機基礎知識試題及答案(一)
  • 商標查詢,龍門標局:R商標是指什么?購買的商標能標注R嗎?
  • 蘇州注冊公司流程和步驟,蘇州企業拿到商標注冊證后,需要注意哪些事項?
  • 注冊一個商標要多久可以批下來,2022年商標注冊需要多長時間?
  • testflight教程,【技術分享】TestFlight測試的流程文檔
  • ios開發者測試版,iOS APP真機測試及上架App Store流程記錄
  • iphone怎么安裝證書,Windows申請iOS證書上架App Store詳細教程 (有這一篇就夠了)
  • 銀河證券章俊,章俊
  • 央行定向降準是什么意思,央行工作會議說了什么:定向調控 松緊適度
  • 機械制造及其自動化畢業設計,計算機在機械設制造中的應用實例,機械設計與制造畢業設計一體化分析
  • 問句和疑問句的區別,問句識別:基于Xgboost的中文疑問句判斷模型
  • 多線程sleep和wait的區別,非wait線程即時喚醒epoll_wait
  • 服務器終端,服務器TIME_WAIT和CLOSE_WAIT區別及解決方案
  • linux查看最大連接數,linux表示文件連接數,linux中連接數過多(TIME_WAIT/CLOSE_WAIT)讀這一篇就夠了
  • 視頻渲染用什么顯卡,Android視頻解碼及渲染
  • 百家號視頻怎么算原創,百家號基于AE的視頻渲染技術探索
  • 視頻制作,常見幾種視頻渲染模式介紹
  • 電子商務運營技能大賽,2022年ITMC暢享杯全國職業院校電子商務技能大賽SEM直通車競賽平臺介紹思路打法
  • Android基礎入門教程,花2萬塊買的教程!Android技術功底不夠如何去面試,大廠直通車!
  • 拼多多直通車出價技巧,直通車拼多多7天均價比價
  • flutter開發小程序,寫給程序員的Flutter詳細教程,大廠直通車!
  • 聚合支付是什么東西,聚合支付行業術語,你get到了嗎?
  • 支付行業發展現狀及趨勢,支付行業的一些名詞
  • 調和級數時間復雜度,51nod 1421 最大MOD值(高妙的調和級數復雜度)
  • mysql數據庫臟讀解決方案,數據庫事務臟讀、幻讀、不可重復讀的解決方法