QT Creator 4.7.0 + QT 5.9.6 項目問題記錄與解決

QT Creator 4.7.0 + QT 5.9.6 項目問題記錄與解決

問題:對QT中窗口Widget設(shè)置背景圖片border-image導(dǎo)致窗口的所有控件背景圖片都變了征讲。

關(guān)鍵字:背景

思路:在 設(shè)計 界面毁欣,Widget屬性氮块,在 styleSheet 中設(shè)置 border-image 并在限制范圍。

實作:命名Widget,并限制范圍杰捂。

范例:Widget名稱為Status_monitor

<pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="C++" contenteditable="true" cid="n7" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 1em 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">#Status_monitor{border-image: url(:/res/image/background-.bmp);}</pre>

需求:在一個用Qlabel顯示的圖片上的特定位置顯示文字比驻。不使用布局,控件排列與自適應(yīng)不易认轨;使用布局后绅络,控件如何重疊,

關(guān)鍵字:控件重疊、Widget重疊恩急、GUI控件自適應(yīng)杉畜、控件按比例縮放

思路:方案一:手動排列GUI,用代碼實現(xiàn)控件自適應(yīng)衷恭;方案二:解決如何使用布局并控件重疊此叠。

實作:在Widget中加入子Widget,在子Widget中加入Qlabel并于其中布局完成随珠,再手動修改QT UI FILE拌蜘,將Widget改為Qlabel,最后將其融入整體布局中牙丽。

范例:參考CSDN

image

需求:在Qlabel顯示的圖片上畫線简卧。

關(guān)鍵字:在label控件上畫線、控件 畫線烤芦、控件 畫圖举娩、在任意控件上畫圖

思路:繼承一個QLabel,然后在paintEvent中畫构罗。

實作:參考CSDN

  1. 用向?qū)梢粋€新類比如LineLabel铜涉,繼承于QLabel。

  2. 添加虛函數(shù) virtual void paintEvent(QPaintEvent *) override 在其中編寫繪畫內(nèi)容

  3. 在 設(shè)計界面 遂唧,找到作為底圖的QLabel芙代,在 對象查看 中 右鍵點擊類名稱,選擇提升盖彭,里面填LineLabel纹烹,保存,重新生成召边。

linelabel.h

<pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="C++" contenteditable="true" cid="n29" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 1em 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">#ifndef LINELABEL_H

define LINELABEL_H

include <QLabel>

include <QPoint>

include <QColor>

include <QPaintEvent>

?
class LineLabel : public QLabel
{
public:
LineLabel(QWidget *parent = nullptr);
?
//繪制線條
virtual void paintEvent(QPaintEvent *event) override;
//得到畫線的起點和終點
void getStartPoint(QPoint SPoint);
void getEndPoint(QPoint EPoint);
?
private:
QPoint lineStartPoint; //畫線起點
QPoint lineEndPoint; //畫線終點
QColor lineColor; //線條顏色
int lineSize;
};
?

endif // LINELABEL_H</pre>

linelabel.cpp

<pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="C++" contenteditable="true" cid="n32" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 1em 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">#include "linelabel.h"

include <QPen>

include <QPainter>

?
//初始化
LineLabel::LineLabel(QWidget *parent):QLabel(parent)
{
this->lineStartPoint = QPoint(0,0);
this->lineEndPoint = QPoint(0,0);
this->lineColor = QColor(Qt::red);
this->lineSize = 3;
}
?
//繪制線條
void LineLabel::paintEvent(QPaintEvent *event)
{
QLabel::paintEvent(event);
QPainter painter(this);
QPen pen;
pen.setColor(lineColor);
pen.setWidth(lineSize);
painter.setPen(pen);
painter.drawLine(lineStartPoint,lineEndPoint);
}
?
void getStartPoint(QPoint SPoint)
{
lineStartPoint = SPoint铺呵;
}
?
void getEndPoint(QPoint EPoint)
{
lineEndPoint = EPoint;
}
?</pre>

status_monitor.cpp

<pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="C++" contenteditable="true" cid="n35" mdtype="fences" style="box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 1em 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; color: rgb(51, 51, 51); font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">#include "status_monitor.h"

include "ui_status_monitor.h"

?
Status_monitor::Status_monitor(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Status_monitor)
{
ui->setupUi(this);
QTimer *timer = new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(timerUpdate()));
timer->start(1000);
}
?
Status_monitor::~Status_monitor()
{
delete ui;
}
?
?
void Status_monitor::timerUpdate(void)
{
int x1, x2, y1, y2;
x1 = 0;
y1 = 0;
x2 = 100;
y2 = 100;
ui->lbTIME->getStartPoint(x1,y1);
ui->lbTIME->getEndPoint(x2,y2);
ui->lbTIME->update();
}</pre>

使用windeployqt打包封裝后遇到數(shù)據(jù)庫連接異常

關(guān)鍵字:打包、封裝隧熙、數(shù)據(jù)庫

思路:缺啥補啥片挂。

實作:把 libmysql.lib 和 libmysql.dll 復(fù)制到exe同級目錄下。

另外打包封裝參考CSDN贞盯。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末音念,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子躏敢,更是在濱河造成了極大的恐慌闷愤,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件父丰,死亡現(xiàn)場離奇詭異肝谭,居然都是意外死亡掘宪,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門攘烛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來魏滚,“玉大人,你說我怎么就攤上這事坟漱∈蟠危” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵芋齿,是天一觀的道長腥寇。 經(jīng)常有香客問我,道長觅捆,這世上最難降的妖魔是什么赦役? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮栅炒,結(jié)果婚禮上掂摔,老公的妹妹穿的比我還像新娘。我一直安慰自己赢赊,他們只是感情好乙漓,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著释移,像睡著了一般叭披。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上玩讳,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天涩蜘,我揣著相機與錄音,去河邊找鬼锋边。 笑死皱坛,一個胖子當(dāng)著我的面吹牛编曼,可吹牛的內(nèi)容都是我干的豆巨。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼掐场,長吁一口氣:“原來是場噩夢啊……” “哼往扔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起熊户,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤萍膛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后嚷堡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蝗罗,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡艇棕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了串塑。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沼琉。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖桩匪,靈堂內(nèi)的尸體忽然破棺而出打瘪,到底是詐尸還是另有隱情,我是刑警寧澤傻昙,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布闺骚,位于F島的核電站,受9級特大地震影響妆档,放射性物質(zhì)發(fā)生泄漏僻爽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一贾惦、第九天 我趴在偏房一處隱蔽的房頂上張望进泼。 院中可真熱鬧,春花似錦纤虽、人聲如沸乳绕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽洋措。三九已至,卻和暖如春杰刽,著一層夾襖步出監(jiān)牢的瞬間菠发,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工贺嫂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留滓鸠,地道東北人。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓第喳,卻偏偏與公主長得像糜俗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子曲饱,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350