導航:首頁 > 安裝方法 > qt中構造方法寫在哪裡

qt中構造方法寫在哪裡

發布時間:2022-01-08 14:59:29

① Qt5編寫Qt求學之路書上的例子 顯示QLabel沒有構造函數

你給補一個不就行了。

或者繼承一個類,補個構造不就行了

② Qt源程序寫在哪個目錄下

應該是
MainWindow::MainWindow()

③ qt部件構造函數問題

QObject 提供了信號與槽、多語言、Qt垃圾回收等Qt核心機制。它是Qt中所有對象的基類。
QWidget,顧名思義,就是窗體部件的基類,比如QDialog、QLabel等都直接或間接繼承自它。它提供了一些窗體部件專有的信號與槽。QtWidget自然也繼承自QObject。

一般上,在使用Qt
Creator創建一個類時,Qt會詢問你該類的基類是什麼、類型信息是什麼等。如果你的類是繼承自形如QPushButton、QDialog、
QMainWindow、QLabel的,那麼,使用explicit MyLabel(QWidget *parent =
0);。如果你的類繼承自QString等類,那麼使用explicit MyString(QObject*parent = 0);。

這里的QObject *parent也好,QWidget *parent也好,都是為了給對象指定從屬關系。比如,
explicit MyLabel(QWidget *parent = 0);
這樣:
QDialog dialog;
MyLabel *label = new MyLabel(&dialog);
就指定了label是作為dialog的一個child存在的。當dialog被銷毀時,它的所有children都會被自動銷毀。所以在Qt中,只要我們在動態創建對象時顯式或隱式(比如通過Layout、setCentralWidget等)指定了對象的從屬關系,那麼這個對象就會在其父對象銷毀的時刻被Qt自動銷毀,而無需你自己再調用delete了。

④ QT 編程問題,幫我看看這段代碼,為什麼寫在構造函數中不運行,用按鈕點擊才能運行,我想實現自動訪問網路

點擊銨鈕時會通過信號槽機制執行到槽函數replyCuifei(QNetworkReply *reply)。直接寫在構造函數中不會自動觸發,你可以直接在構造函數中調用replyCuifei(QNetworkReply *reply)。

⑤ 請問一下我在Qt一應用程序中,在構造函數裡面寫的widget比如按鈕這些,運行後都無法顯示,只有一空白窗體

如果說你的按鈕沒有顯示,最有可能的原因是你沒有將按鈕的父窗口設置成你自定義的Widget
比如說你自定義了一個 Widget,它繼承自 QWidget,示意如下:
//widget.h
#ifndef WIDGET_H
#define WIDGET_H

#include <QtGui/QWidget>
#include <QPushButton>

class Widget : public QWidget
{
Q_OBJECT

public:
Widget(QWidget *parent = 0);
~Widget();

private:
QPushButton buttonA;
QPushButton buttonB;
QPushButton* pButton;
};

#endif // WIDGET_H
在上面的頭文件中定義了兩個button以及一個指針,下面是源文件
//widget.cpp
#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
buttonA.setText("buttonA");
buttonB.setText("buttonB");
//在構造pButton時指定Widget為pButton的父窗口
//注意:由於pButton繼承自QObject並且你為他指定了父窗口,
//父類中的QObjetc會對pButton的內存進行管理,並在合適的時候釋放內存,
//所以你不需要在Widget的析構函數中去進行delete pButton的操作,
//建議使用new這種方式來構造子控制項
pButton = new QPushButton(this);
pButton->setText("buttonC");
//指定Widget為buttonA和buttonB的父窗口
//如果你不指定他們的父窗口,那麼這些控制項將不可見
//你可以注釋下兩行中的某條語句,來測試控制項是否可見
//目前兩個控制項都是可見的
buttonA.setParent(this);
buttonB.setParent(this);
//移動控制項到相應的坐標點
buttonA.move(100,100);
buttonB.move(100,150);
pButton->move(100,200);
}

Widget::~Widget()
{
}
//main.cpp

#include <QtGui/QApplication>
#include "widget.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}

這就是整個示常式序了,總的來說,要想窗體中的控制項可見,你必須將該窗體設置成這些控制項的父窗口。

⑥ c++ Qt創建菜單欄代碼QMenu寫在類成員裡面, 還是定義到方法里

是做成臨時變數,還是做成類成員,主要還是看你後面還會不會用到這個變數。
通常情況下,盡量使用臨時變數,因為臨時變數超出了作用域後就會析構。
變數多了,會導致濫用。
如果後面還會用到(比如析構函數)這個變數,而且沒有別的途徑能夠獲得這個變數,那麼就要做成類成員。

⑦ C++ Qt 編程求解惑 具體問題:與Qt框架無關的復雜計算函數,聲明和實現分別寫在哪個文件里

QT 的槽函數跟正常C++的函數是一樣使用的,不過多了接受信號的功能而已,可以看作是C++函數的超集
C++函數怎麼調用另一個.cpp文件里的函數或是參數那還是一樣調用,include .cpp 進去然後直接使用
槽函數不是說一定要有信號才能被調用的,因為它可以算是正常C++函數的超集,所以跟正常C++函數一樣能在任何你聲明過它的地方的
ps:信號可以帶參數傳遞給槽函數

⑧ 關於QT構造函數的問題

構造函數中的那個參數已經賦默認值了,傳個參數進去,這個對象就成了MainWindow的父對象了。
父對象的用處很多的,Qt對象樹之類的都要用到

⑨ Qt中構造函數初始化的問題

在void FindDialog::findClicked()中 定義的兩個信號
45 if (backwardCheckBox->isChecked()) {
46 emit findPrevious(text, cs);
47 } else {
48 emit findNext(text, cs);
49 }
當用戶點擊find按鈕後 調用這個函數 函數中獲取lineEdit和caseCheckBox的狀態 然後發送信號
41 QString text = lineEdit->text();
42 Qt::CaseSensitivity cs =
43 caseCheckBox->isChecked() ? Qt::CaseSensitive
44 : Qt::CaseInsensitive;
在別的程序中使用這個類時,可以通過關聯這兩個信號 知道這個窗口中lineEdit和caseCheckBox的狀態

閱讀全文

與qt中構造方法寫在哪裡相關的資料

熱點內容
形態面高測量方法 瀏覽:907
蘋果手機相機閃退解決方法 瀏覽:163
嘉年華老樁的種植方法 瀏覽:588
瓶子草正確捕食方法 瀏覽:334
菊花扦插種植方法與技巧 瀏覽:601
服裝櫃是按什麼分類方法 瀏覽:768
強迫症手機清理方法 瀏覽:270
轉換器銅條載流計算方法 瀏覽:823
被動音樂療法中最常用的方法是 瀏覽:740
6到9歲感統訓練方法 瀏覽:777
最簡單的彎綉方法 瀏覽:320
高樓層陶瓷瓦的安裝方法 瀏覽:882
質性研究方法常選用 瀏覽:632
小兒吐了怎麼處理方法 瀏覽:700
果蔬原料的保鮮方法有哪些 瀏覽:541
夜間跑步減肥正確方法 瀏覽:604
如何收拾男友的方法 瀏覽:721
床墊如何清洗有什麼方法 瀏覽:392
零食食用方法 瀏覽:632
果樹粘蠅板的使用方法 瀏覽:186