Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓƵ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Qt:¼òµ¥µÄ¼Çʱ¾Ð¡Èí¼þ
 
  2976  次浏览      18
 2019-4-3
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcsdn£¬±¾ÎÄÖ÷Òª½éÉÜÁËÔËÓÃQtµÄÄÇЩ¿âº¯ÊýʵÏÖ¼Çʱ¾Ð¡Èí¼þµÄÏêϸ¹ý³ÌÏà¹Ø֪ʶ¡£

ÕâѧÆÚµÄC++´ó×÷ÒµÊǽáºÏQt×öÒ»¸öÒ½ÔºµÄ²¡ÈËÅźÅϵͳ£¬ËùÒÔ×î½üÔÚѧϰQt¡£×îºÃµÄѧϰ·½·¨¾ÍÊÇʵ¼ù£¬¶à¶¯ÊÖ×öһЩ¶«Î÷²ÅÄÜÁ˽âºÍÊìϤQtµÄÄÇЩ¿âº¯Êý,ÖÜÎåÍíÉÏ×öÁ˸ö¼Çʱ¾Ð¡Èí¼þ£¬ÊµÏÖÁ˴󲿷Ö΢Èí¼Çʱ¾µÄ¹¦ÄÜ¡£Ð´ÏÂÁô´æ¼Ç¼¡£

À´¼¸ÕÅЧ¹ûͼ°É£º

СÈí¼þµÄÖ÷Òª¹¦ÄÜ°üÀ¨£º

н¨Îļþ£¬´ò¿ªÎļþ£¬±£´æÎļþ£¬ÎļþÁí´æΪ

³·Ïú£¬ÖØ×ö

¸´ÖÆ£¬¼ôÇУ¬Õ³Ìù

¸Ä±ä×ÖÌ壬¸Ä±ä×ÖÌåÑÕÉ«

µÚÒ»²¿·Ö£º

Ò»¸öÒ»¸öÂýÂý˵¡£Ê×ÏÈÊÇÈí¼þµÄ»ù±¾½çÃ棬ÓÐÁ˽çÃæÔÙÌí¼Ó¹¦ÄÜ¡£¹¹³É½çÃæµÄÖ÷Ìå¾ÍÊ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ÎļþÀïÑ¡ÔñÒªÌí¼ÓµÄÎļþ×ÊÔ´£¬Ìí¼ÓÖ®ºó¿ÉÒÔ¸øͼƬÆð¸ö±ðÃû£¬ÔÚ³ÌÐòÀïÖ±½ÓÓñðÃû£¬ÕâÑùµÄºÃ´¦ÊǼ´Ê¹Í¼Æ¬µÄÎļþÃû¸ÄÁËҲû¹Øϵ¡£

   
2976 ´Îä¯ÀÀ       18
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
Öع¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

Öع¹-¸ÄÉƼÈÓдúÂëµÄÉè¼Æ
Èí¼þÖع¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì