qt1.4簡單寫字板實現

1設計目標:ide

qt1.4簡單寫字板實現
2建立項目、添加資源
qt1.4簡單寫字板實現
qt1.4簡單寫字板實現
qt1.4簡單寫字板實現
qt1.4簡單寫字板實現
qt1.4簡單寫字板實現
qt1.4簡單寫字板實現
qt1.4簡單寫字板實現
3設計Action
QAction是一個很是實用的類,在界面設計時,可建立Action,並完成trigger()信號的槽函數。
設計Action的功能:能夠建立菜單欄選項、工具欄按鈕、設置爲QToolButton按鈕的關聯Action,當點擊這些按鈕時就會執行Action的槽函數。函數

一、添加Action
qt1.4簡單寫字板實現
qt1.4簡單寫字板實現
qt1.4簡單寫字板實現
qt1.4簡單寫字板實現
2設計菜單欄
qt1.4簡單寫字板實現
3添加一些沒法其餘組件
例如:你須要在工具欄中添加Spinbox用於設置字體大小、FontcomboBox來選擇字體,在狀態欄中添加Lable、ProgreeBar和獲取系統時間並動態顯示在窗口狀態欄,可是窗體組件是拒絕添加的,面對這種狀況,咱們須要編寫相應代碼來完成啦。工具

.h字體

#include <QLabel>
#include <QProgressBar>
#include <QSpinBox>
#include <QFontComboBox>
private slots:
    void timeUpdate();
private:
    Ui::MainWindow *ui;
    //工具欄添加組件
    QSpinBox *spinbox;
    QFontComboBox *Fontbox;
    //狀態欄添加組件
    QLabel *label;
QProgressBar *progressBox;
QLabel  *currentTimeLabel;

.cui

void MainWindow::Init()
 {
     //工具欄添加組件
//     QSpinBox *spinbox;
//     QFontComboBox *Fontbox;
     spinbox=new QSpinBox();
     spinbox->setMinimum(8);
     spinbox->setMaximum(50);
     spinbox->setValue(ui->textEdit->font().pointSize());
     ui->mainToolBar->addWidget(new QLabel("字體大小"));
     ui->mainToolBar->addWidget(spinbox);//spinbox添加到工具欄

     ui->mainToolBar->addSeparator();//添加分隔欄

     ui->mainToolBar->addWidget(new QLabel("字體"));
     Fontbox=new QFontComboBox;
     Fontbox->setMinimumWidth(150);
     ui->mainToolBar->addWidget(Fontbox);//Fontbox添加到工具欄

     setCentralWidget(ui->textEdit);

     //狀態欄添加組件
//     QLabel *label;
//     QProgressBar *progressBox;
     label = new QLabel;
     label->setMidLineWidth(150);
     label->setText("當前文件:");
     ui->statusBar->addWidget(label);//label添加到狀態欄

     progressBox = new QProgressBar;
     progressBox->setMinimum(5);
     progressBox->setMaximum(50);
     progressBox->setMinimumWidth(200);
     progressBox->setValue(ui->textEdit->font().pointSize());
     ui->statusBar->addWidget(progressBox);//progressBox添加到狀態欄
//獲取系統時間並動態顯示在窗口狀態欄
    currentTimeLabel=new QLabel;
     QTimer *timer=new QTimer(this);
     timer->start(1000); // 每次發射timeout信號時間間隔爲1秒
     connect(timer,SIGNAL(timeout()),this,SLOT(timeUpdate()));

 }

槽函數:this

void MainWindow::timeUpdate()
 {
    QDateTime CurrentTime=QDateTime::currentDateTime();
    QString Timestr=CurrentTime.toString(" yyyy年-MM月-dd日 hh:mm:ss "); //設置顯示的格式
    currentTimeLabel->setText(Timestr);

   // ui->statusBar->addWidget(currentTimeLabel);//生成在狀態欄的左端
    ui->statusBar->addPermanentWidget(currentTimeLabel);//生成在狀態欄的最右端

 }
 }

要在構造函數中調用Init函數。設計

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    Init();

}

運行效果:
qt1.4簡單寫字板實現
4Action功能實現
編輯功能Action功能實現:
qt1.4簡單寫字板實現
其餘Action功能實現:
qt1.4簡單寫字板實現3d

void MainWindow::on_actBold_triggered(bool checked)
{
   QTextCharFormat fmt;
   fmt=ui->textEdit->currentCharFormat();
   if(checked)
   {
       fmt.setFontWeight(QFont::Bold);
   }
   else {
       fmt.setFontWeight(QFont::Normal);

   }
   ui->textEdit->mergeCurrentCharFormat(fmt);
}

void MainWindow::on_actItalic_triggered(bool checked)
{
    Q_UNUSED(checked);
    QTextCharFormat fmt;

    if (ui->actItalic->isChecked())
       fmt.setFontItalic(true);
    else
       fmt.setFontItalic(false);

    ui->textEdit->mergeCurrentCharFormat(fmt);
}

void MainWindow::on_actUnline_triggered(bool checked)
{
    Q_UNUSED(checked);
    QTextCharFormat fmt;

    if (ui->actUnline->isChecked())
       fmt.setFontUnderline(true);
    else
       fmt.setFontUnderline(false);

    ui->textEdit->mergeCurrentCharFormat(fmt);
}

5代碼建立的組件信號與槽實現
首先肯定編寫響應代碼:
SpinBox信號:
void valueChanged(int i)code

FontComboBox信號:orm

void    valueChanged(int i) 

在void MainWindow::Init()中添加信號與槽的鏈接
//字體與大小信號與槽
connect(spinbox,SIGNAL(valueChanged(int)),this,SLOT(SpinBox_Valuechage(int)));
    connect(Fontbox,SIGNAL(currentIndexChanged(const QString &)),this,SLOT(ComboFont_currentIndexchange(const QString &)));
在.cpp中添加槽函數的實現

void MainWindow::SpinBox_Valuechage(int SBoxFontSize)
{
    qDebug()<<"11";
   QTextCharFormat format;
   format.setFontPointSize(SBoxFontSize);
   ui->textEdit->mergeCurrentCharFormat(format);
   progressBox->setValue(SBoxFontSize);
}
//改變字體格式
void MainWindow::ComboFont_currentIndexchange(const QString &arg1)
{
    QTextCharFormat format;
    format.setFontFamily(arg1);
    ui->textEdit->mergeCurrentCharFormat(format);
}

運行效果:
qt1.4簡單寫字板實現
6在Init函數中添加下面一行實現
qt1.4簡單寫字板實現 ui->mainToolBar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);//顯示文字和圖標
7爲應用程序添加圖標
將圖標文件複製到項目文件目錄下,並在.pro文件中添加RC_ICONS =name.ico。
name是圖片文件名,包括後綴必須是.ico的圖片
qt1.4簡單寫字板實現
qt1.4簡單寫字板實現8文件操做會在後面說。

相關文章
相關標籤/搜索