溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Qt--Qt的簡單介紹以及坐標系統(tǒng)

發(fā)布時間:2020-07-27 19:42:12 來源:網(wǎng)絡 閱讀:338 作者:淡淡_小孩 欄目:編程語言

一.Qt Creator工程介紹

Qt Creator以工程項目的方式對源碼進行管理
A.一個Qt Creator工程包含不同類型的文件
.pro項目描述文件
.pro.user用戶配置文件
.h頭文件
.cpp源文件
.ui界面描述文件
資源文件-圖片、音頻等
B.pro項目描述文件的基本構成
Qt--Qt的簡單介紹以及坐標系統(tǒng)
C.pro項目描述文件中的高級變量
Qt--Qt的簡單介紹以及坐標系統(tǒng)
D.CONFIG用于設定項目的配置信息和編譯選項
CONFIG的常用選項
1.debug-構建debug版本的可執(zhí)行程序
2.release--構建release版本的可執(zhí)行程序
3.debug_and_release--一同構建debug版和release版
4.warn_on--盡可能多的輸出警告信息
5.warn_off-不能輸出警告信息
.pro文件的本質(zhì)為Qt中的Makefile文件
Qt--Qt的簡單介紹以及坐標系統(tǒng)
.pro項目文件分析

QT += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = HelloWorld
TEMPLATE = app

INCLUDEPATH += E:/BCC/include \
               E:/VC/include

SOURCES += Main.cpp \
           HelloWorld.cpp

HEADERS += HelloWorld.h

FORMS   += HelloWorld.ui

RC_FILE += MyIco.rc

LIBS    += -LE:/vlc-1.11/sdk/lib

CONFIG  += warn_on debug

#
# if 'debug' option is set for CONFIG
#
CONFIG(debug) {
    DEFINES += DEBUG_LOG
    SOURCES += DebugLog.cpp
    HEADERS += DebugLog.h
}

一般來說,項目文件中的描述都使用相對路勁,而相對路徑時相對于項目文件本身而言的,Qt Creator將項目文件作為目標
注意:1.Qt Creator在打開項目文件的同時會生成.pro.user文件
2..pro.user文件包含一些與Qt相關的本地配置信息
3.當需要在不同計算機之間移動項目源碼時,建議刪除.pro.user文件

E.工程中的概念
構建--對項目的所有文件進行編譯,最終生成可執(zhí)行文件
debug--可以進行程序調(diào)式的構建版本,可執(zhí)行程序中包含調(diào)試信息,運行效率不高
release版--最終發(fā)布的應用程序構建版本,無調(diào)試信息,運行效率高
小結
1.Qt Creator以工程項目的方式對源碼進行管理
2.一個Qt Creator工程包含不同類型的文件
3..pro文件是Qt中與平臺無關的Makefile文件
4.Qt Creator提供了開發(fā)所必備的快捷高效的功能

二.窗口組件及窗口類型

1.圖形用戶界面由不同的窗口和窗口組件構成
2.<QtGui>頭文件包含窗口組件,對應Qt的GUI模塊
3.Qt以組件對象的方式構建圖形用戶界面
4.組件的類型--a.容器類(父組件):用于包含其它的界面組件; b功能類(子組件):用于實現(xiàn)特定的交互功能
Qt--Qt的簡單介紹以及坐標系統(tǒng)
A.QWidget類繼承自QObject類和QPainDevice類
1.QObject是所有支持Qt對象模型的基類
2.QPainDevice是所有可繪制組件的基類
Qt--Qt的簡單介紹以及坐標系統(tǒng)
B.QWidget組件
1.QWidget能夠繪制自己和處理用戶的輸入
2.QWidget是Qt中所有窗口組件類的父親
3.QWidget是所有窗口組件的抽象
4.Qt中的每一個窗口組件都是一個QWidget
5.QWidget類對象常作為父組件或頂級組件使用
C.QLabel組件
1.QLabel用于顯示一個提示性的字符串
2.QLabel是功能性組件,一般需要父組件作為容器
3.QLabel可以作為窗口存在,但沒什么意義
QWidget組件和QLabel組件代碼示例

#include "Widget.h"
#include <QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w;
    QLabel la(&w);

    w.setWindowTitle("dandanxiaohai");
    la.setText("mylove");
    w.show();

    return a.exec();
}

運行結果
Qt--Qt的簡單介紹以及坐標系統(tǒng)
D.Q中可以根據(jù)需要定制窗口式樣
1.窗口類型--Qt::Dialog-對話框類型 ,Qt::window-主窗口類型,Qt::SplashScreen-啟動畫面類型,其它的類型可以在Qt幫助文檔中進行查找
2.窗口標志
Qt::WindowStaysOnTopHint ,Qt::WindowContextHelpButtonHint等
小結
1.Qt以組件對象的方式構建圖形用戶界面
2.QWidget類是所有用戶界面組件的父類
3.QWidget類對象常作為父組件或頂級組件使用
4.Qt中可以根據(jù)需要定制窗口式樣
5.QLabel用于顯示一個提示性的字符串

三.Qt中的坐標系統(tǒng)

A.坐標系統(tǒng)
1.GUI操作系統(tǒng)都有特定的坐標系統(tǒng)
2.圖形界面程序在坐標系統(tǒng)中進行窗口和部件的定位
3.定位類型--頂級窗口部件定位、窗口內(nèi)部件的定位、窗口部件大小設置
B.Qt坐標系統(tǒng)
1.Qt使用統(tǒng)一的坐標系統(tǒng)定位窗口部件的位置和大小
2.Qt部件類提供成員函數(shù)在坐標系統(tǒng)中進行定位
3.QWidget類提供了窗口部件所需的坐標系統(tǒng)成員函數(shù)
Qt--Qt的簡單介紹以及坐標系統(tǒng)
QWidget類中的坐標系統(tǒng)成員函數(shù)
Qt--Qt的簡單介紹以及坐標系統(tǒng)
編程實驗,代碼示例

#include "Mainwindow.h"
#include <QApplication>
#include <QDebug>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;//頂級組件
    w.resize(300,200);//設置的大小
    w.move(120,120);//設置的生成坐標位置
    w.show();

    qDebug()<<"QWidget:";
    qDebug()<<w.x();
    qDebug()<<w.y();
    qDebug()<<w.height();
    qDebug()<<w.width();

    qDebug()<<"QWidget::geometry()";
    qDebug()<<w.geometry().x();
    qDebug()<<w.geometry().y();
    qDebug()<<w.geometry().height();
    qDebug()<<w.geometry().width();

    qDebug()<<"QWidget::frameGeometry()";
    qDebug()<<w.frameGeometry().x();
    qDebug()<<w.frameGeometry().y();
    qDebug()<<w.frameGeometry().height();
    qDebug()<<w.frameGeometry().width();

    return a.exec();
}

打印結果--在窗口顯示之后才會有坐標數(shù)據(jù)(須在show()調(diào)用之后),該打印結果與之前圖所示相符合
Qt--Qt的簡單介紹以及坐標系統(tǒng)

C.QPushButton組件
1.QPushButton用于接受用戶點擊事件
2.QPushButton能夠顯示提示性字符串
3.QPushButton是功能性組件,需要父類組件作為容器
4.QPushButton能夠在父類組件中進行定位
Qt--Qt的簡單介紹以及坐標系統(tǒng)
小結
1.Qt中的幾何坐標以左上角為原定--水平為x軸,從左向右為正向;垂直為y軸。從上到下為正向
2.Qt中的GUI組件以左上角進行定位
3.Qt中的GUI組件可以在坐標系統(tǒng)中進行大小設置

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI