±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚcsdn£¬±¾ÎÄÖ÷Òª½éÉÜÁËÔËÓÃQtµÄÄÇЩ¿âº¯ÊýʵÏÖ¼Çʱ¾Ð¡Èí¼þµÄÏêϸ¹ý³ÌÏà¹Ø֪ʶ¡£ |
|
ÕâѧÆÚµÄC++´ó×÷ÒµÊǽáºÏQt×öÒ»¸öÒ½ÔºµÄ²¡ÈËÅźÅϵͳ£¬ËùÒÔ×î½üÔÚѧϰQt¡£×îºÃµÄѧϰ·½·¨¾ÍÊÇʵ¼ù£¬¶à¶¯ÊÖ×öһЩ¶«Î÷²ÅÄÜÁ˽âºÍÊìϤQtµÄÄÇЩ¿âº¯Êý,ÖÜÎåÍíÉÏ×öÁ˸ö¼Çʱ¾Ð¡Èí¼þ£¬ÊµÏÖÁ˴󲿷Ö΢Èí¼Çʱ¾µÄ¹¦ÄÜ¡£Ð´ÏÂÁô´æ¼Ç¼¡£
À´¼¸ÕÅЧ¹ûͼ°É£º
![](images/2019040331.png)
![](images/2019040332.jpg)
![](images/2019040333.jpg)
![](images/2019040334.jpg)
СÈí¼þµÄÖ÷Òª¹¦ÄÜ°üÀ¨£º
н¨Îļþ£¬´ò¿ªÎļþ£¬±£´æÎļþ£¬ÎļþÁí´æΪ
³·Ïú£¬ÖØ×ö
¸´ÖÆ£¬¼ôÇУ¬Õ³Ìù
¸Ä±ä×ÖÌ壬¸Ä±ä×ÖÌåÑÕÉ«
µÚÒ»²¿·Ö£º
Ò»¸öÒ»¸öÂýÂý˵¡£Ê×ÏÈÊÇÈí¼þµÄ»ù±¾½çÃ棬ÓÐÁ˽çÃæÔÙÌí¼Ó¹¦ÄÜ¡£¹¹³É½çÃæµÄÖ÷Ìå¾ÍÊDz˵¥À¸£¬¹¤¾ßÀ¸ºÍÎı¾ÇøÓò¡£
²Ëµ¥À¸£º
QMenu *fileMenu;
QMenu *editMenu;
QMenu *helpMenu; |
ÉÏÃæ´úÂëÉùÃ÷Èý¸ö²Ëµ¥ÏȻºóÔÙÌí¼Óµ½²Ëµ¥À¸£¬QtÀïÒ»¸ömenuBar()º¯Êý·µ»ØÖ÷´°¿ÚµÄ²Ëµ¥À¸¡£Ò²¿ÉÒÔÏñÏÂÃæÕâÑùÓÃQMenuBarÉùÃ÷Ò»¸ö²Ëµ¥À¸£º
QMenuBar *menuBar
= new QMenuBar(0); |
ÒòΪÎÒÊÇÖ±½ÓÔÚMainWindow´°¿ÚÖ±½ÓдµÄ´úÂ룬¾ÍÓÃmenuBar()º¯ÊýÁË¡£½«²Ëµ¥ÏîÌí¼Óµ½²Ëµ¥À¸£º
//ʵÀý»¯
fileMenu = new QMenu(this);//thisÖ¸µ±Ç°´°¿Ú
editMenu = new QMenu(this);
helpMenu = new QMenu(this);
//Ìí¼Óµ½²Ëµ¥À¸²¢ÃüÃû
fileMenu = menuBar()->addMenu("File");
editMenu = menuBar()->addMenu("Edit");
helpMenu = menuBar()->addMenu("Help"); |
ÔÚÿ¸ö²Ëµ¥ÏîÏÂÃæÓкü¸¸ö¹¦ÄÜ£¬±ÈÈçFile²Ëµ¥ÏÂÓÐн¨£¬´ò¿ª£¬±£´æ£¬Áí´æΪ£¬´òÓ¡£¬Í˳ö¹¦ÄÜ£¬ÔÚQtÀïÿһ¸ö¹¦ÄÜ×÷Ϊһ¸ö¶¯×÷£¬¼´QAction£¬ÕâÓëjava²»Í¬£¬javaÀïÿһ¸ö²Ëµ¥ÏîµÄ×ÓÏîÊÇmenuItem¡£ÉùÃ÷×Ӳ˵¥ÏÒÔFile²Ëµ¥ÎªÀý£©£º
QAction *newAct;
//н¨
QAction *openAct; //´ò¿ª
QAction *saveAct; //±£´æ
QAction *saveAsAct; //Áí´æΪ
QAction *printAct; //´òÓ¡
QAction *quitAct; //Í˳ö |
ÔÚEdit£¬Help²Ëµ¥ÏµÄÄÇЩ×ÓÏîÒ²ÏñÉÏÃæÄÇÑùÉùÃ÷¾ÍÐÐÁË£¬ÕâÀï¾Í²»Ìù´úÂëÀï¡£½ÓÏÂÀ´¾ÍÊÇʵÀý»¯Ã¿Ò»¸ö¶¯×÷£¬ÒÔnewActΪÀý£º
newAct = new
QAction(QIcon("Images/newFile"),"New",this);
newAct->setShortcut(QKeySequence(Qt::CTRL +
Qt::Key_N));
newAct->setStatusTip("New File"); |
ÉÏÃæÈýÐдúÂëÖУ¬µÚÒ»¾äʵÀý»¯Ò»¸ö¶¯×÷£¬µÚÒ»¸ö²ÎÊýÉèÖÃËüµÄIcon£¬¼´Í¼±ê£¬µÚ¶þ¸ö²ÎÊýÊÇÃû×Ö£¬µÚÈý¸ö²ÎÊýÊǸ¸¶ÔÏó£¬thisÖ¸µ±Ç°´°¿Ú¡£º¯ÊýÔÐÍÈçÏ£º
QAction(const
QIcon & icon, const QString & text, QObject
* parent) |
µÚ¶þ¾ä´úÂëÉèÖÿì½Ý¼ü¡£µÚÈýÐдúÂëÉèÖÃ״̬À¸ÐÅÏ¢£¬×´Ì¬À¸ÔÚÈí¼þµÄÏÂÃ棬µ±Êó±êÍ£Ôڸö¯×÷ÉÏʱÔÚ״̬À¸×ó±ßÏÔʾµÄÐÅÏ¢¡£
½ÓÏÂÀ´¾ÍÊÇ°ÑÕâЩactionÌí¼Óµ½²Ëµ¥ÏîÏÂÃæ¡£addAction()º¯Êý¸ºÔðÍê³ÉÕâ¸ö¹¦ÄÜ£¬ÈçÏ£º
fileMenu->addAction(newAct);
fileMenu->addSeparator();
fileMenu->addAction(openAct); |
addSeparator()º¯ÊýÊÇÔÚÁ½¸ö¶¯×÷Ö®¼ä¼ÓÒ»Ìõ·Ö¸îÏß¡£
ÒÀºù«»Æ°ÆäËûµÄһЩ²Ëµ¥×ÓÏîÒ²ÊÇÕâô¸ö²½Ö裬²»ÔÙÏêÊö¡£½ÓÏÂÀ´Êǹ¤¾ßÀ¸¡£
¹¤¾ßÀ¸
µ±Ð½¨¹¤³ÌʱÖ÷´°¿ÚÊÇ×Ô´ø¹¤¾ßÀ¸µÄ£¬ÄDZãÊÇmainToolBar£¬ËùÒÔ²»±ØÁíÍâÔÙ¶¨ÒåÐµĹ¤¾ßÀ¸£¬Ö±½ÓÔÚËüÉÏÃæÌí¼Ó¶¯×÷¾ÍÐÐÁË¡£Ìí¼Ó¶¯×÷ºÍÌí¼Ó·Ö¸îÏߵĺ¯ÊýÓë²Ëµ¥À¸Ò»Ñù£¬Ê¾Àý´úÂëÈçÏ£º
ui->mainToolBar->addAction(newAct);
ui->mainToolBar->addSeparator(); |
Îı¾ÇøÓò
Îı¾ÇøÓòÎÒÓõÄÊÇQTextEditÀ࣬¸ÃÀàÌṩһ¸öÓÃÀ´ÏÔʾºÍ±à¼Îı¾µÄ²¿¼þ£¬Õâ¸öÀàµÄÇ¿´óÖ®´¦ÊÇÎÒÃÇƽ³£ÓõÄÄÇЩ²Ù×÷Îı¾µÄ¿ì½Ý¼üËü¶¼ÓÃʵÏÖÁË£¬²»ÓÃ×Ô¼ºÔÙд´úÂë¡£È縴ÖÆÎı¾Ctrl+C£¬Õ³ÌùÎı¾Ctrl+V£¬¼ôÌùÎı¾Ctrl+X¡£Ö÷Òª´úÂëÈçÏ£º
QTextEdit *textEdit;
textEdit = new QTextEdit();
textEdit->setFont(QFont("ËÎÌå", 15));//ÉèÖÃĬÈÏ×ÖÌ壺×ÖÌ壬×ÖÌå´óС
setCentralWidget(textEdit);//ÉèÖÃÎı¾ÇøÓòΪÕû¸ö´°¿ÚµÄÖÐÑ벿¼þ |
µ±ÎÒÃÇÓÃnotepad±à¼Æ÷µÄʱºò£¬Èí¼þÓÒϽǻáÏÔʾÊó±ê¹â±êËùÔÚµÄÐÐÊýºÍÁÐÊý£¬ÕâÀïҲʵÏÖÁËÕâ¸ö¹¦ÄÜ¡£Ê×ÏÈÉùÃ÷Ò»¸öLabel²ãÓÃÀ´ÏÔʾÐÅÏ¢£¬È»ºóÔÙ°ÑLabelÌí¼Óµ½×´Ì¬À¸¡£
QLabel *textInfo;
textInfo = new QLabel();
textInfo->setText("Ready");//ÉèÖÃĬÈÏÏÔʾÄÚÈÝ
statusBar()->addPermanentWidget(textInfo);//Ìí¼Óµ½×´Ì¬À¸,ÔÚÈí¼þÓÒÏÂ½Ç |
statusBar()º¯Êý»ñÈ¡Ö÷´°¿ÚµÄ״̬À¸£¬addPermanentWidget()º¯ÊýÌí¼ÓÓÀ¾ÃÐÔ²¿¼þ£¬ÓÀ¾ÃÐÔÒâζ×ÅËü²»»á±»ÁÙʱÐÅÏ¢Ëù¸²¸Ç£¬Ìí¼Óµ½×´Ì¬À¸Óұߡ£¸Õ²ÅÔڲ˵¥À¸ÉèÖÃÿ¸ö¶¯×÷µÄÐÅϢʱ£¬ÏÔʾµÄÐÅÏ¢ÊÇÔÚ״̬À¸×ó±ß¡£È»ºó¾ÍÊÇдһ¸öº¯Êý»ñµÃÊó±ê¹â±êµÄλÖÃÐÅÏ¢£¬²¢°ÑÐÅÏ¢ÏÔʾÔÚLabelÉÏ¡£
void MainWindow::showTextInfo(){
QTextCursor textCursor = textEdit->textCursor(); //»ñµÃÊó±ê¹â±ê
int lineNum = textCursor.blockNumber(); //ÐÐÊý
int colNum = textCursor.columnNumber(); //ÁÐÊý
textInfo->setText(tr("Li:%1,Col:%2").arg(lineNum+1) .arg(colNum)); //ÏÔʾÔÚLabelÉÏ£¬×¢Ò⣺ÐÐÊýÊÇ´Ó0¿ªÊ¼µÄ
} |
×îºó£¬Ò²ÊÇ×îÖØÒªµÄÒ»²½£¬ËÀ´µ÷ÓÃÕâ¸öº¯Êý£¿ÎÒÃÇÔõô֪µÀÊó±ê¹â±êµÄλÖøıäÁËÄØ£¿Õâ¾ÍҪ˵µ½Qt×îÀ÷º¦µÄµØ·½ÁË£¬ÐźÅÓë²Û¡£¼òµ¥À´Ëµ£º²Û¾ÍÊÇÏìÓ¦º¯Êý£¬ÐźžÍÊǸøÏìÓ¦º¯Êý·¢µÄÏûÏ¢£¬Òâ˼ÊÇÕâ¸öÏûÏ¢Ò»²úÉú£¬ÏàÓ¦µÄº¯Êý¾ÍÒªÖ´ÐС£¾ÍÏñµçÓ°¡¶¼¯½áºÅ¡·À¼¯½áµÄºÅÉùÒ»ÏìÄã¾Í¿ÉÒÔ³·ÍËÁË£¬ÕâÀïºÅÉù¾ÍÊÇÐźţ¬³·Í˾ÍÊDzۡ£Ò»ÐдúÂëÈçÏ£º
connect(textEdit,SIGNAL(cursorPositionChanged()), this,SLOT(showTextInfo())); |
º¯ÊýÔÐÍ£º
QObject::connect(const
QObject * sender, const char * signal, const QObject
* receiver,
const char * method, Qt::ConnectionType type =
Qt::AutoConnection) |
²ÎÊý˵Ã÷£º
const QObject * sender :·¢³öÐźŵĶÔÏó
const char * signal : ÐźÅ
const QObject * receiver : ½ÓÊÕÐźŵĶÔÏó
const char * method : ²Û
Qt::ConnectionType type = Qt::AutoConnection : Á¬½Ó·½Ê½£¬ÒѾÉ趨Ϊ×Ô¶¯Á¬½ÓÁË£¬¶àÊýÇé¿öϲ»Óÿ¼ÂÇÕâ¸ö²ÎÊý
ÔÚÎÒÃÇÄÇÐдúÂëÀ·¢³öÐźŵĶÔÏóÊÇÎı¾ÇøÓò£¬¼´textEdit£¬ÐźÅÊÇÊó±ê¹â±êµÄλÖñäÁË£¬cursorPositionChanged()º¯Êý·µ»ØÕâ¸öÐÅÏ¢£¬Õâ¸öº¯ÊýʽQtÌṩµÄ£¬½ÓÊÕÐźŵĶÔÏóÊǵ±Ç°Ö÷´°¿Ú£¬²Û¾ÍÊÇshowTextInfo()º¯Êý£¬ÊµÊ±¸Ä±ä״̬À¸ÓÒϽǵÄÐÅÏ¢¡£
µÚ¶þ²¿·Ö
¸÷¸ö¹¦ÄܵÄʵÏÖ¡£²Ëµ¥À¸Ò»¹²¾ÍÈý¸öÑ¡ÏîFile£¬Edit£¬Help£¬Ò»¸öÒ»¸ö˵¡£
Edit
Edit²Ëµ¥ÏîÏÂÃæÓÐÎå¸ö×ÓÏ¶¯×÷£©£¬·Ö±ðÊÇ£º
Undo :³·Ïú
Redo :ÖØ×ö
Cut :¼ôÇÐ
Copy :¸´ÖÆ
Paste :Õ³Ìù
ÕâЩ¹¦ÄÜQtÀﶼÌṩÁ˺¯ÊýʵÏÖ£¬ËùÒÔÕⲿ·Ö¹¦ÄܾÍÊÇÁ¬½ÓÐźÅÓë²Û¾ÍÐÐÁË£¬²¢ÇÒÄÇЩ¿ì½Ý¼ü²Ù×÷QtҲʵÏÖÁË¡£´úÂëÈçÏ£º
//Í·Îļþ¶¨Òå²Û
private slots:
void slotCut();
void slotCopy();
void slotPaste();
void slotRedo();
void slotUndo();
//Ô´ÎļþʵÏÖ²Û£¬²¢ÓëÐźÅÁ¬½Ó
void MainWindow::slotCut(){
textEdit->cut();
}
void MainWindow::slotCopy(){
textEdit->copy();
}
void MainWindow::slotPaste(){
textEdit->paste();
}
void MainWindow::slotRedo(){
textEdit->redo();
}
void MainWindow::slotUndo(){
textEdit->undo();
}
//Á¬½ÓÐźÅÓë²Û
connect(undoAct,SIGNAL(triggered()),this ,SLOT(slotUndo()));
connect(redoAct,SIGNAL(triggered()),this ,SLOT(slotRedo()));
connect(cutAct,SIGNAL(triggered()),this ,SLOT(slotCut()));
connect(copyAct,SIGNAL(triggered()),this ,SLOT(slotCopy()));
connect(pasteAct,SIGNAL(triggered()),this ,SLOT(slotPaste())); |
¸Õ¿ªÊ¼ÎÒ²¢²»ÖªµÀQtÌṩÁËÕâЩº¯Êý£¬¾Í×Ô¼ºÐ´Á˸´ÖƺÍÕ³ÌùµÄº¯Êý£¬µ±Ð´¼ôÇеĺ¯Êýʱ£¬¿´Îĵµ·¢ÏÖQtÒѾʵÏÖÁËÕâЩ¸öº¯Êý£¬¾ÍÄÃÀ´Óðɡ£ÓÐÏֳɵÄÂÖ×ӺαØÔÙ×Ô¼ºÔìÂÖ×ÓÄØ£¡°Ñ×Ô¼ºÐ´µÄÄÇÁ½¸öº¯ÊýµÄ´úÂëÒ²ÌùÉÏÀ´°É£º
void MainWindow::slotCopy(){
QTextCursor cur = textEdit->textCursor();//·µ»Øµ±Ç°¹â±ê¶ÔÏó
copyText = cur.selectedText();//coptTextÊÇÒ»¸öÈ«¾ÖQString¶ÔÏ󣬻ñÈ¡Êó±êÑ¡ÖеÄÎı¾
}
void MainWindow::slotPaste(){
textEdit->textCursor().insertText(copyText);//ÔÚÊó±ê¹â±ê´¦²åÈë¸Õ²Å¸´ÖƵÄÎı¾
} |
Help
Help²Ëµ¥Ïî¾ÍÒ»¸ö×Ӳ˵¥¨Cabout£¬µ¯³öÒ»¸öÏûÏ¢´°¿Ú£¬ÉÏÃæÏÔʾһЩÎÒÏë˵µÄÐÅÏ¢¡£ËüµÄ¶¯×÷ÃûÊÇaboutAct¡£²ÛÊÇactAboutAuthor()º¯Êý¡£
void MainWindow::actAboutAuthor(){
QMessageBox::about(this,"About","This
software wasmade By DJ.");
}
connect(aboutAct,SIGNAL(triggered()), SLOT(actAboutAuthor()));
|
File
File²Ëµ¥ÏÂÓÐÁù¸ö×ÓÏî
New :н¨
Open :´ò¿ª
Save :±£´æ
Save As :Áí´æΪ
Print :´òÓ¡£¬Õâ¸ö¹¦ÄÜÊǵ÷ÓôòÓ¡»úµÄ£¬Ã»ÊµÏÖ
Quit :Í˳ö³ÌÐò
µ±ÒªÐ½¨£¬´ò¿ªÆäËûÎļþ»òÍ˳ö³ÌÐòʱ£¬ÐèÒªÅжϵ±Ç°µÄÎļþÄÚÈÝÊDz»ÊDZ»ÐÞ¸ÄÁË£¬Èç¹û±»ÐÞ¸ÄÁË£¬¾ÍÒªÌáÐÑÓû§ÊDz»ÊÇÒª±£´æµ±Ç°Îļþ£¬ËùÒÔÐèÒªÒ»¸öº¯ÊýÀ´·µ»ØÕâ¸öÐÅÏ¢¡£º¯ÊýÈçÏ£º
bool MainWindow::maybeSave(){
if(textEdit->document()->isModified()){//ÅжÏÎļþÊÇ·ñ±»ÐÞ¸Ä
QMessageBox::StandardButtons result;
result = QMessageBox::warning(this,"Waring","Do
you want to save the file?",
QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
if(result == QMessageBox::Cancel){//È¡Ïû
return false;
}
if(result == QMessageBox::Save){//±£´æ
return slotSave();
}
if(result == QMessageBox::Discard){//ºöÂÔ£¬¼´²»±£´æ
return true;
}
}else{
return true;
}
} |
µ±±£´æÎļþʱ£¬»¹ÒªÅжÏÕâ¸öÎļþÊDz»ÊÇ´æÔÚ£¬Èç¹û´æÔÚÖ±½Ó±£´æ¾ÍºÃ£¬Èç¹û²»´æÔÚ£¬¾ÍҪн¨Ò»¸öÎļþÔÙ±£´æ£¬Ï൱ÓÚÁí´æΪÁË¡£currentFileÊÇÈ«¾ÖQString±äÁ¿£¬Ö¸µ±Ç°µÄÎļþÃû£¬Èç¹ûΪ¿Õ˵Ã÷ÐèÒªÁíÍ⽨һ¸öÎļþ±£´æµ±Ç°Îı¾ÐÅÏ¢£¬¾Íµ÷ÓÃÁí´æΪµÄÏìÓ¦º¯Êý£»·Ç¿Õ¾ÍÖ±½ÓÔÚµ±Ç°Îļþϱ£´æÄÚÈÝ¡£
bool MainWindow::slotSave(){
if(currentFile.isEmpty()){
return slotSaveAs();
} else{
return saveFile(currentFile);
}
} |
Áí´æΪµÄ²Ûº¯ÊýÈçÏ£¬getSaveFileName()º¯Êýµ¯³öÎļþ±£´æ¶Ô»°¿ò²¢·µ»ØÎļþÃû¡£µÚÈý¸ö²ÎÊýÊÇĬÈÏ·¾¶ºÍĬÈÏÎļþÃû£¬µÚËĸö²ÎÊýÊÇÎļþ¹ýÂËÆ÷¡£Èç¹ûÊÇÒ»¸ö¹ýÂËÆ÷¶à¸öÎļþµÄ»°£¬Îļþºó׺ÒÔ¿Õ¸ñ·Ö¿ª£¬È磺
"Image
Files (*.png *.jpg *.bmp)" £» |
Èç¹ûÊǶà¸ö¹ýÂËÆ÷µÄ»°£¬¹ýÂËÆ÷Ö®¼äÓÃÁ½¸ö·ÖºÅ¸ô¿ª£¬Èç
"Images
(*.png *.xpm *.jpg);;Text files (*.txt);;XML files
(*.xml)" |
²Ûº¯Êý´úÂëÈçÏ£º
bool MainWindow::slotSaveAs(){
QString fileName =QFileDialog::getSaveFileName(this,tr("Save
As"), "/home/mary",tr("Text
Files (*.txt)"));
if(fileName.isEmpty()){
return false;
}else{
return saveFile(fileName);
}
} |
saveFile()º¯Êý´úÂëÈçÏ£º
bool MainWindow::saveFile(QString
fileName){
QFile file(fileName);
if(!file.open(QFile::WriteOnly | QFile::Text)){
QMessageBox::critical(this, "critical",
"cannot write file"
);
return false;
}else{
QTextStream out(&file);
out<<textEdit->toPlainText();
setFileName(fileName);
return true;
}
} |
н¨ÎļþµÄ²Ûº¯ÊýÈçÏ£º
void MainWindow::slotNew(){
if(maybeSave()){
textEdit->clear();
setFileName("");
}
}
void MainWindow::setFileName(QString fileName){
currentFile = fileName;
textEdit->document()->setModified(false);
this->setWindowModified(false);
fileName.isEmpty() ?
this->setWindowFilePath("new.txt")
:
this->setWindowFilePath(fileName);
}
|
´ò¿ªÎļþµÄ²Ûº¯ÊýÈçÏ£º
void MainWindow::slotOpen(){
if(maybeSave()){
QString fileName = QFileDialog::getOpenFileName(this);
if(!fileName.isEmpty()){
loadFile(fileName);
}
}
}
//¼ÓÔØÎļþµÄº¯Êý
void MainWindow::loadFile(QString fileName){
QFile file(fileName);
if(!file.open(QFile::ReadOnly | QFile::Text)){
QMessageBox::critical(this, "critical",
"cannot read file"
);
}else{
QTextStream in(&file);
textEdit->setText(in.readAll());
setFileName(fileName);
}
} |
Í˳ö³ÌÐòµÄ²Ûº¯ÊýÈçÏ£º
void MainWindow::quitApp(){
if(maybeSave()){
qApp->closeAllWindows();//¹Ø±ÕËùÓд°¿Ú
}
} |
˵µ½Í˳ö³ÌÐò£¬»¹ÓÐÁíÍâÒ»¸öÇé¿öÒª¿¼ÂÇ£¬Èç¹ûÓû§Ö±½Óµã»÷Èí¼þÓÒÉϽǵÄXºÅ¹Ø±ÕÈí¼þµÄ»°£¬Èç¹ûÎı¾ÄÚÈݸıäÁËÒ²ÒªÌáÐÑËûÊÇ·ñÒª±£´æÎı¾£¬Õâ¾ÍÒªÓõ½QtµÄʼþ»úÖÆ£¬Ð´Ò»¸öº¯Êý£¬²ÎÊýÊǹرÕʼþ¡£´úÂëÈçÏ£º
void MainWindow::closeEvent(QCloseEvent
*e){
if(maybeSave()){
e->accept();
}else{
e->ignore();//ºöÂÔ£¬Ö±½Ó¹Ø±Õ
}
} |
ºôºô~ÖÕÓÚдÍêÁ˴󲿷ÖÁË£¬ÎÒ¶¼Ð´ÁËÈý¸öСʱÁË¡£~~(>_<)~~
µÚÈý²¿·Ö
»¹ÓÐÁíÍâÁ½¸ö¹¦ÄÜҪ˵һÏ£¬¹¤¾ßÀ¸Éϵĸü¸Ä×ÖÌåºÍ¸ü¸ÄÑÕÉ«µÄ¹¤ÄÜ¡£QtÕæÊÇ·½±ã°¡£¬ËüÓÖÌṩÁË×ÖÌåÑ¡ÔñºÍÑÕÉ«Ñ¡ÔñÃæ°å£¨ºÃ°É£¬java
swingÒ²ÌṩÁË£¬¶øÇÒÑÕÉ«Ãæ°å¸ü·á¸»£©¡£Ö÷Òª´úÂëÈçÏ£º
void MainWindow::changeFontFamily(){
QFontDialog fontDlg; //×ÖÌåÑ¡Ôñ¶Ô»°¿ò£¬¿ÉÒÔÑ¡Ôñ×ÖÌ壬×ÖÌåÑùʽ£¬´óС
QFont font;
bool isChanged;
font = fontDlg.getFont(&isChanged);
if(isChanged){
textEdit->setFont(font);
}
}
void MainWindow::changeFontColor(){
QColorDialog colorDlg; //ÑÕÉ«Ñ¡Ôñ¶Ô»°¿ò
QColor color;
QPalette palette = textEdit->palette();//»ñµÃÎı¾ÇøÓòµÄµ÷É«°å
color = colorDlg.getColor(Qt::black);//ĬÈÏÊǺÚÉ«
if (color.isValid())
{
palette.setColor(QPalette::Text, color);//ÉèÖÃ×ÖÌåÑÕÉ«
textEdit->setPalette(palette);
}
} |
ÕâÀïÓбØҪ˵һÏÂQPaletteÀ࣬ÔÚQtÀïÿһ¸ö¿Ø¼þ¶¼ÓÐÒ»¸öµ÷É«°å£¬Ëü¿ØÖÆ×ſؼþµÄËùÓÐÑÕÉ«ÐÅÏ¢¡£¶ÔÓÚÎı¾ÇøÓòQTextEdit¿Ø¼þ£¬Ä¿Ç°ÎÒÖªµÀÁ½ÖÖÑÕÉ«·ÖÁ¿£¬×ÖÌåÑÕÉ«ºÍ±³¾°ÑÕÉ«£¬Öµ·Ö±ðÊÇQPalette::Text
ºÍ QPalette::Base¡£ËùÓУ¬ÆäʵÈí¼þ»¹¿ÉÒÔÔö¼ÓÒ»¸öС¹¦ÄÜ£º¸Ä±äÎı¾ÇøÓòµÄ±³¾°ÑÕÉ«¡£
À´Á½ÕÅͼƬ°É£º
»¹ÓÐÒ»¸öС֪ʶµãÒª¼ÇÏÂÀ´£ºÔÚÉèÖò˵¥ÏîµÄIconʱҪÓõ½Í¼Æ¬×ÊÔ´£¬Òª°Ñ×ÊÔ´Ìí¼Óµ½¹¤³ÌÖС£Ê×ÏÈÔÚ¹¤³ÌĿ¼ÏÂн¨ImagesÎļþ¼Ð£¬°ÑÐèÒªµÄͼƬ×ÊÔ´È«²¿·Å½øÈ¥£¬È»ºóÔÚQt
CreatorÀïÓÒ»÷¹¤³ÌÃû£¬Ñ¡ÔñÌí¼ÓÐÂÎļþ¡ª>Ñ¡ÔñQt Resource File ¡ª¡ª->Æð¸öÎļþÃû£¬Â·¾¶Ñ¡Ôñ¸Õ²Åн¨µÄImagesÎļþµÄ·¾¶¡ª>Íê³É¡£×îºóÔÚQt
CreatorÀïµÄ¹¤³ÌĿ¼Ï¾ͻá³öÏÖÒ»¸ö¡°×ÊÔ´¡±Îļþ¼Ð£¬´ò¿ª.qrc½áβµÄÎļþ£¬¸ÃÎļþµÄÃû×ÖÊǸղÅÆðµÄÄǸöÃû×Ö¡£Ìí¼Óǰ׺£º±ØÐëÒÔ
/ ¿ªÍ·£¬È»ºóÌí¼ÓÎļþ£¬´ÓImagesÎļþÀïÑ¡ÔñÒªÌí¼ÓµÄÎļþ×ÊÔ´£¬Ìí¼ÓÖ®ºó¿ÉÒÔ¸øͼƬÆð¸ö±ðÃû£¬ÔÚ³ÌÐòÀïÖ±½ÓÓñðÃû£¬ÕâÑùµÄºÃ´¦ÊǼ´Ê¹Í¼Æ¬µÄÎļþÃû¸ÄÁËҲû¹Øϵ¡£ |