天天看點

qt 設定按鈕大小_QT的用法心得筆記

QT的自動滾動區QScrollArea的用法,圖文詳解_野生猿-群号1025127672-CSDN部落格_qscrollarea​blog.csdn.net

qt 設定按鈕大小_QT的用法心得筆記

這個的代碼最後一段是缺少的.需要加幾行.

scrollArea->setWidget(pWgt);
      setCentralWidget(scrollArea);
           

QScrollArea 用法 - wjbooks - 部落格園​www.cnblogs.com

#include 
           
  • error: invalid use of incomplete type 'const class QMimeData',其中紅色字型的部分為可變項,'const class xxx',xxx隻要為Qt中支援的類即适用。

出現上述的問題的原因為:工程中沒有包含對應類的頭檔案 。

  • 怎麼讓視窗顯示?

Layout相當于布局好了的容器,而Widget相當于要加入這個容器中的東西.

addLayout 是添加一個布局,addWidget 是添加一個部件, 而Layout是由許多部件組成

layout->addWidget(widgetMain,0,1) 第0行,第1列.

btn->setText("OK"); //設定名字

Qstring的用法:

QString("") .arg用法之最詳細篇​blog.csdn.net

qt 設定按鈕大小_QT的用法心得筆記

LineEdit是單行的;TextEdit是多行的

QT中LineEdit、TextEdit、PlainTextEdit這三個控件差別為:

輸du入内容不同、用途不同、限制行數不同。

一、輸入内容不同1、LineEdit:LineEdit的輸入内容為單行文本輸入。

2、TextEdit:TextEdit的輸入内容為多行文本輸入。

3、PlainTextEdit :PlainTextEdit的輸入内容為多行文本輸入。

二、用途不同

1、LineEdit:LineEdit多用于使用者名、密碼等少量文本互動地方。

2、TextEdit:TextEdit多用于顯示較多資訊展示的地方,也可以顯示HTML格式文本。

3、PlainTextEdit :PlainTextEdit用于需要與文本進行處理的地方。

Qt中的ui(new Ui::Widget)是什麼意思呢?new就是建立,UI::Widget就是一個Widget界面,是以就是初始化一個Widget界面指針,其變量名為ui。

gridLayout_Body->addLayout(verLayout,1,1);
    verLayout->addWidget(lineEdit,1);
    verLayout->addWidget(btn,1);
           

是顯示不出來的,我還不知道為什麼,有待研究widget和layout的關系.

窗體設定網格布局 ,使得QScrollArea的大小受窗體大小驅動, 打破布局時,界面縮放時,控件沒法跟着縮放.

error: invalid use of incomplete type 'const class QMimeData',
           

其中紅色字型的部分為可變項,'const class xxx',xxx隻要為Qt中支援的類即适用。

出現上述的問題的原因為:工程中沒有包含對應類的頭檔案 。

怎麼讓視窗顯示?

Layout相當于布局好了的容器,而Widget相當于要加入這個容器中的東西.

addLayout 是添加一個布局,addWidget 是添加一個部件, 而Layout是由許多部件組成

layout->addWidget(widgetMain,0,1) 第0行,第1列.

btn->setText("OK"); //設定名字

Qstring的用法:QString("") .arg用法之最詳細篇

Qt中的ui(new Ui::Widget)是什麼意思呢?new就是建立,UI::Widget就是一個Widget界面,是以就是初始化一個Widget界面指針,其變量名為ui

窗體設定網格布局 ,使得QScrollArea的大小受窗體大小驅動,打破布局時,界面縮放時,控件沒法跟着縮放

編譯錯誤:

  • QMetaObject::connectSlotsByName: No matching signal for on_pushButton_clicked()

他這句話的意思是,你之前UI建立了一個pushButton的按鈕,而且選擇了關聯槽,之後你将該pussButton給删除了或者改了名字,此時系統找不到改pushButton進行信号關聯操作,

是以會提示你這個錯誤,你類裡面關于該函數的函數删除就行了,記得是類定義裡面的。

  • Qt 5 error: C1083: 無法打開包括檔案: “Qdialog”: No such file or directory

Qt5的GUI子產品變動了,所有的QWidget都被剝離出來,單獨成為qtwidgets子產品

是以pro裡要添加如下的代碼(假設有 widgets network svg子產品):

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets network svg

然後在建構菜單下 清理項目

在建構菜單下 重新執行qmake

在建構菜單下 建構項目“***”

在建構菜單下 運作 (或者直接重新建構似乎也可以)

Q: 點選按鈕 一次出現兩個新視窗?

A:如果把槽函數定義成on_<sender>_<signals>時會發現信号與槽在ui_xxxxx.h頭檔案中connect了兩次,導緻的結果是當點選add建立對話框時,會建立2個對話框。

注釋掉connect項或者注釋掉QMetaObject::connectSlotsByName(AddressBookClass);這項即可解決。

但是這并不是最好的解決方案,最好的是定義槽函數的時候不按這個規則on_<sender>_《signals>來定義槽函數。

  • QLabel 文本内容自動換行顯示 ,需要把QLabel的WordWrap屬性設定成TRUE

永久預設支援c++17的設定方法

讓Qt5預設支援C++17的設定方法_日沉雲起的部落格-CSDN部落格_qt c++17

找到Qt5的安裝目錄,我的安裝目錄是在D盤Qt5.12.3檔案夾下,

打開如下目錄:D:Qt5.12.3ToolsQtCreatorshareqtcreatortemplateswizardsprojectsplaincpp,

找到file.pro檔案,用記事本打開該檔案,将CONFIG += console c++11修改為CONFIG += console c++17,以後建立的項目就都預設支援c++17了。

  • 在使用SDL庫的時候會在編譯時報出以下錯誤
1>MSVCRTD.lib(exe_main.obj) : error LNK2019: 無法解析的外部符号 _main,該符号在函數 “int __cdecl invoke_main(void)” (?invoke_main@@YAHXZ) 中被引用

是main函數沒有找到 ,main函數沒有找到的主要原因是SDL中把main從新定義一個新的意義SDL使用了

有個解決方法是 項目屬性----》連接配接器----》系統-----》子系統----》視窗 (/SUBSYSTEM:WINDOWS)改為控制台 (/SUBSYSTEM:CONSOLE)。此時,程式運作時,會先啟動一個終端,之後啟動GUI界面。

繼續閱讀