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

這個的代碼最後一段是缺少的.需要加幾行.
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

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界面。