QT4模块一《颜色、字体的设置》

UI界面设计如下:

 

 

#######################  fontcolor.h ###########################

 

#ifndef FONTCOLOR_H
#define FONTCOLOR_H
#include 
#include 

namespace Ui {
    class FontColor;
}
class FontColor : public QDialog
{    
	Q_OBJECT
public:    
	explicit FontColor(QWidget *parent = 0);    
	~FontColor();        
	bool eventFilter(QObject *target,QEvent *event);    
	QString getMessage();   
	private:    Ui::FontColor *ui;
	private slots:    
	void on_boldToolBtn_clicked(bool checked);    
	void textColorPressed();    
	void textUnderLinePressed(bool checked);    
	void textItalicPressed(bool checked);    
	void textBoldPressed(bool);    
	void sendBtnPressed();    
	void quitBtnPressed();    
	void fontComboBox_currentFontChanged(QFont f);    
	void fontSizeComboBox_currentIndexChange(QString );
};
#endif // FONTCOLOR_H


#######################  fontcolor.cpp ###########################

 

#include "fontcolor.h"
#include "ui_fontcolor.h"
FontColor::FontColor(QWidget *parent) 
	:    QDialog(parent),    
	ui(new Ui::FontColor)
{    
	ui->setupUi(this);    
	ui->textEdit->setFocusPolicy(Qt::StrongFocus);
    ui->textEdit->setFocus();    
	ui->textEdit->installEventFilter(this);    
	connect(ui->fontComboBox,SIGNAL(currentFontChanged(QFont)),this,SLOT(fontComboBox_currentFontChanged(QFont)));
    connect(ui->comboBox,SIGNAL(currentIndexChanged(QString)),this,SLOT(fontSizeComboBox_currentIndexChange(QString)));
    connect(ui->boldToolBtn,SIGNAL(clicked(bool)),this,SLOT(textBoldPressed(bool)));
    connect(ui->italicToolBtn,SIGNAL(clicked(bool)),this,SLOT(textItalicPressed(bool)));    
	connect(ui->underlineToolBtn,SIGNAL(clicked(bool)),this,SLOT(textUnderLinePressed(bool)));
    connect(ui->colorToolBtn,SIGNAL(clicked()),this,SLOT(textColorPressed()));
    connect(ui->sendBtn,SIGNAL(clicked()),this,SLOT(sendBtnPressed()));    
	connect(ui->cancelBtn,SIGNAL(clicked()),this,SLOT(quitBtnPressed()));
}
FontColor::~FontColor()
{    
	delete ui;
}
bool FontColor::eventFilter(QObject *target,QEvent *event)
{ 	
	if(target == ui->textEdit) 
	{ 		
		if(event->type() == QEvent::KeyPress) 			
		{ 				
			QKeyEvent *k = static_cast(event); 				
			if(k->key() == Qt::Key_Return) 					
			{ 							
				sendBtnPressed(); 							
				return true; 					 			
			} 	
		} 	
		return QWidget::eventFilter(target,event);
	}
}
void FontColor::fontComboBox_currentFontChanged(QFont f)
{    
	ui->textEdit->setCurrentFont(f);    
	ui->textEdit->setFocus();
}
void FontColor::fontSizeComboBox_currentIndexChange(QString size)
{    
	ui->textEdit->setFontPointSize(size.toDouble());    
	ui->textEdit->setFocus();
}
void FontColor::textItalicPressed(bool checked)
{    ui->textEdit->setFontItalic(checked);    
	ui->textEdit->setFocus();
}
void FontColor::textUnderLinePressed(bool checked)
{    
	this->ui->textEdit->setFontUnderline(checked);    
	this->ui->textEdit->setFocus();
}
void FontColor::textColorPressed()
{
    QColor color = QColorDialog::getColor(color,this);    
	if(color.isValid())    
	{        
		ui->textEdit->setTextColor(color);       
		ui->textEdit->setFocus();    
	}
}
QString FontColor::getMessage()
{    
	QString msg = ui->textEdit->toHtml();    
	ui->textEdit->clear();    
	ui->textEdit->setFocus();    
	return msg;
}
void FontColor::sendBtnPressed()
{
    QTime time;    
	ui->textBrowser->setTextColor(Qt::blue);    
	ui->textBrowser->setCurrentFont(QFont("Times New Roman",11));    
	ui->textBrowser->append(time.currentTime().toString() + " ");    
	ui->textBrowser->append(getMessage());
}
void FontColor::quitBtnPressed()
{
    this->close();
}
void FontColor::textBoldPressed(bool checked)
{    
	if(checked)        
		ui->textEdit->setFontWeight(QFont::Bold);    
	else        
		ui->textEdit->setFontWeight(QFont::Normal);    
		ui->textEdit->setFocus();
}


你可能感兴趣的:(QT)