天天看點

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

這裡寫目錄标題

  • 1、下載下傳
  • 2、安裝
  • 3、安裝lib庫
  • 4、建立工程
  • 5、編輯菜單欄
  • 6、Qt檔案操作
    • 6.1打開檔案
    • 6.2建立檔案
    • 6.3儲存檔案
    • 7.4另存為
  • 8、在windows運作

1、下載下傳

官網下載下傳可能較慢這裡使用清華鏡像源來下載下傳,下載下傳連結

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

我這裡下載下傳的是5.12.9的版本,如果有其他版本需求可以跳轉到其他目錄下載下傳即可

2、安裝

下載下傳完成後打開終端進入到下載下傳目錄,執行ls指令可以看到我們下載下傳的檔案

然後我們設定安裝所需要的檔案權限

sudo chmod u+x qt-opensource-linux-x64-5.12.9.run 
           

然後就可以開始安裝了執行.run檔案會彈出安裝界面

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

下一步登入qt賬号密碼

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

勾選同意開源協定然後下一步

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

然後是設定安裝目錄,建議在自己的工作目錄建立一個QT檔案夾來進行安裝,然後選擇要安裝的元件

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

然後就是等待安裝完成了,到了這一步QT設計師軟體已經可以打開了,但是再編寫我們程式之前還需要下一個步驟。

3、安裝lib庫

進行玩上一個安裝步驟完成後編譯第一個項目會出現cannt find -IGL問題,是因為沒有按照libGL庫,執行以下指令

sudo apt-get install libgl1-mesa-dev
           

Ubuntu一般都是帶有gcc編譯器的,如果實在沒有g++編譯器的還需要安裝一下g++編譯器

sudo apt-get install g++
           

到了這裡其實就可以開始我們的代碼之旅了

4、建立工程

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作
Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

項目名稱和項目路徑不能帶有中文

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作
Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

基類一定要選擇mainwindow因為我們待會兒會用到菜單欄這個功能,UI也最好建立一個可以更加直覺的看見自己的界面效果

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

然後基本就是下一步下一步就好了

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

然後點選編譯,基本就表示沒有問題了

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

5、編輯菜單欄

然後我們來設計頁面

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

首先添加一個文本編輯框,然後布局(要點選沒有控件的地方再布局)

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

然後我們來添加菜單欄

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

然後我們ctrl+r試一下

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

有的小夥伴可能上方不會出現菜單欄,這是因為Ubuntu設定的原因我們需要設定一下,在系統設定中外觀-行為

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

這樣就可以解決沒有菜單欄的問題了,下面開始編寫我們的代碼了

6、Qt檔案操作

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

我們可以在這裡先設定一下快捷鍵例如我們常見的ctrl+o打開檔案ctrl+s儲存檔案,這個根據自己需求來,然後我們再右擊他點選轉為槽,信号選擇預設的triggered就号好。

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

然後我們再.h檔案中添加這三個頭檔案

#include <QMessageBox>
#include <QFileDialog>
#include <QTextStream>
           

槽函數轉換完成在.h檔案應該有以下聲明(編譯器自動生成的)

private slots:
    void on_actionnew_file_triggered();

    void on_actionMe_triggered();

    void on_actionopen_file_triggered();

    void on_actionsave_file_triggered();

    void on_actionsave_as_file_triggered();
           

然後開始編寫我們的槽函數代碼

6.1打開檔案

/***  open file  ***/
void MainWindow::on_actionopen_file_triggered()
{
    filepath = file->getOpenFileName(this,"選擇一個文本檔案","./","*.txt *.c *.cpp *.h");
    /* 打開檔案 */
    QFile fp(filepath);
    if( !fp.open(QIODevice::ReadWrite))
    {
        QMessageBox box(QMessageBox::NoIcon,"提示","檔案讀取失敗");
        box.setStandardButtons (QMessageBox::Ok);
        box.setButtonText (QMessageBox::Ok,QString("确定"));
        box.exec();
    }else
    {
        ui->textEdit->append(fp.readAll());
    }
}
           

6.2建立檔案

/*** new file ***/
void MainWindow::on_actionnew_file_triggered()
{
    QFileDialog fileDialog;
    QString fileName = fileDialog.getSaveFileName(this,"New File","./","*.txt *.c *.cpp *.h");
    if(fileName == "")
    {
        return;
    }
    QFile file(fileName);
    if(!file.open(QIODevice::ReadWrite | QIODevice::Text))
    {
        QMessageBox::warning(this,"error","new file error!");
        return;
    }
    else
    {
        QTextStream outText(&file);
        QString str = ui->textEdit->toPlainText();
        outText<<str;
        file.close();
    }
}
           

6.3儲存檔案

/*** save file ***/
void MainWindow::on_actionsave_file_triggered()
{
    /* 打開檔案 */
    if(filepath.isNull())
    {
        on_actionsave_as_file_triggered();
        return;
    }
    else
    {
        QFile fp(filepath);
        if( !fp.open(QIODevice::ReadWrite))
        {
            QMessageBox box(QMessageBox::NoIcon,"提示","檔案讀取失敗");
            box.setStandardButtons (QMessageBox::Ok);
            box.setButtonText (QMessageBox::Ok,QString("确定"));
            box.exec();
        }else
        {
            QTextStream outText(&fp);
            QString str = ui->textEdit->toPlainText();
            outText << str;
        }
    }
}
           

7.4另存為

/*** save as file ***/
void MainWindow::on_actionsave_as_file_triggered()
{
    QFileDialog fileDialog;
    filepath = fileDialog.getSaveFileName(this,"Save File name","./","*.txt *.c *.cpp *.h");
    if(filepath == "")
    {
        return;
    }
    QFile file(filepath);
    if(!file.open(QIODevice::ReadWrite))
    {
        QMessageBox::warning(this,"error","open file failure!");
        return;
    }
    else
    {
        QTextStream outText(&file);
        QString str = ui->textEdit->toPlainText();
        outText<<str;
        file.close();
    }
}
           

然後我們再添加一個about吧,這樣顯得專業一點

/***  about  ***/
void MainWindow::on_actionMe_triggered()
{
    QMessageBox box(QMessageBox::NoIcon,"About","Welcome to the text editor");
    box.setStandardButtons (QMessageBox::Ok|QMessageBox::No);
    box.setButtonText(QMessageBox::Ok, QString("OK"));
    box.setButtonText(QMessageBox::No, QString("EXIT?"));
    if (box.exec() == QMessageBox::No)
    {
        this->close();
    }
}
           

然後我們CTRL+R運作看一下效果

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

效果不錯,快捷鍵也可以正常使用,然後我們試一試qt的跨平台功能直接把工程放在windows上跑一下試試。

8、在windows運作

這裡會提示切換kits,切換以下就好了,會提示的

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

運作是沒有問題的,就是這個畫面有點醜還是需要美化。

Ubuntu下Qt程式設計,從QT的安裝到編寫notepad1、下載下傳2、安裝3、安裝lib庫4、建立工程5、編輯菜單欄6、Qt檔案操作8、在windows運作

9、總結

本章主要完成了qt再Linux上的安裝及建立工程的使用,還編寫了第一個跨平台的應用notepad,知識點包含了菜單欄、qt檔案操作。

繼續閱讀