青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

程序讓生活更美好

半畝方塘 天光云影

  C++博客 ::  :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
  55 隨筆 :: 4 文章 :: 202 評論 :: 0 Trackbacks
1、如果在窗體關(guān)閉前自行判斷是否可關(guān)閉
答:重新實(shí)現(xiàn)這個窗體的closeEvent()函數(shù),加入判斷操作
Quote:

void MainWindow::closeEvent(QCloseEvent *event)
{
      if (maybeSave())
      {
              writeSettings();
              event->accept();
      }
      else
      {
              event->ignore();
      }
}


2、如何用打開和保存文件對話
答:使用QFileDialog
Quote:

              QString fileName = QFileDialog::getOpenFileName(this);
              if (!fileName.isEmpty())

              {
                    loadFile(fileName);
              }


Quote:

      QString fileName = QFileDialog::getSaveFileName(this);
      if (fileName.isEmpty())

      {
              return false;
      }


3、如果創(chuàng)建Actions(可在菜單和工具欄里使用這些Action)
答:
Quote:

newAct = new QAction(QIcon(":/images/new.png"), tr("&New"), this);
        newAct->setShortcut(tr("Ctrl+N"));
        newAct->setStatusTip(tr("Create a new file"));
        connect(newAct, SIGNAL(triggered()), this, SLOT(newFile()));

        openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this);
        openAct->setShortcut(tr("Ctrl+O"));
        openAct->setStatusTip(tr("Open an existing file"));
        connect(openAct, SIGNAL(triggered()), this, SLOT(open()));

        saveAct = new QAction(QIcon(":/images/save.png"), tr("&Save"), this);
        saveAct->setShortcut(tr("Ctrl+S"));
        saveAct->setStatusTip(tr("Save the document to disk"));
        connect(saveAct, SIGNAL(triggered()), this, SLOT(save()));

        saveAsAct = new QAction(tr("Save &As..."), this);
        saveAsAct->setStatusTip(tr("Save the document under a new name"));
        connect(saveAsAct, SIGNAL(triggered()), this, SLOT(saveAs()));

        exitAct = new QAction(tr("E&xit"), this);
        exitAct->setShortcut(tr("Ctrl+Q"));
        exitAct->setStatusTip(tr("Exit the application"));
        connect(exitAct, SIGNAL(triggered()), this, SLOT(close()));

        cutAct = new QAction(QIcon(":/images/cut.png"), tr("Cu&t"), this);
        cutAct->setShortcut(tr("Ctrl+X"));
        cutAct->setStatusTip(tr("Cut the current selection's contents to the "
                                "clipboard"));
        connect(cutAct, SIGNAL(triggered()), textEdit, SLOT(cut()));

        copyAct = new QAction(QIcon(":/images/copy.png"), tr("&Copy"), this);
        copyAct->setShortcut(tr("Ctrl+C"));
        copyAct->setStatusTip(tr("Copy the current selection's contents to the "
                                "clipboard"));
        connect(copyAct, SIGNAL(triggered()), textEdit, SLOT(copy()));

        pasteAct = new QAction(QIcon(":/images/paste.png"), tr("&Paste"), this);
        pasteAct->setShortcut(tr("Ctrl+V"));
        pasteAct->setStatusTip(tr("Paste the clipboard's contents into the current "
                                  "selection"));
        connect(pasteAct, SIGNAL(triggered()), textEdit, SLOT(paste()));

        aboutAct = new QAction(tr("&About"), this);
        aboutAct->setStatusTip(tr("Show the application's About box"));
        connect(aboutAct, SIGNAL(triggered()), this, SLOT(about()));

        aboutQtAct = new QAction(tr("About &Qt"), this);
        aboutQtAct->setStatusTip(tr("Show the Qt library's About box"));
        connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));

4、如果創(chuàng)建主菜單
答:采用上面的QAction的幫助,創(chuàng)建主菜單
Quote:

      fileMenu = menuBar()->addMenu(tr("&File"));
        fileMenu->addAction(newAct);
        fileMenu->addAction(openAct);
        fileMenu->addAction(saveAct);
        fileMenu->addAction(saveAsAct);
        fileMenu->addSeparator();
        fileMenu->addAction(exitAct);

        editMenu = menuBar()->addMenu(tr("&Edit"));
        editMenu->addAction(cutAct);
        editMenu->addAction(copyAct);
        editMenu->addAction(pasteAct);

        menuBar()->addSeparator();

        helpMenu = menuBar()->addMenu(tr("&Help"));
        helpMenu->addAction(aboutAct);
        helpMenu->addAction(aboutQtAct);


5、如果創(chuàng)建工具欄
答:采用上面的QAction的幫助,創(chuàng)建工具欄
Quote:

      fileToolBar = addToolBar(tr("File"));
        fileToolBar->addAction(newAct);
        fileToolBar->addAction(openAct);
        fileToolBar->addAction(saveAct);

        editToolBar = addToolBar(tr("Edit"));
        editToolBar->addAction(cutAct);
        editToolBar->addAction(copyAct);
        editToolBar->addAction(pasteAct);

6、如何使用配置文件保存配置
答:使用QSettings類
Quote:

      QSettings settings("Trolltech", "Application Example");
        QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint();
        QSize size = settings.value("size", QSize(400, 400)).toSize();


Quote:

      QSettings settings("Trolltech", "Application Example");
        settings.setValue("pos", pos());
        settings.setValue("size", size());


7、如何使用警告、信息等對話框
答:使用QMessageBox類的靜態(tài)方法
Quote:

int ret = QMessageBox::warning(this, tr("Application"),
                        tr("The document has been modified.\n"
                            "Do you want to save your changes?"),
                        QMessageBox::Yes | QMessageBox::Default,
                        QMessageBox::No,
                        QMessageBox::Cancel | QMessageBox::Escape);
            if (ret == QMessageBox::Yes)
                return save();
            else if (ret == QMessageBox::Cancel)
                return false;


8、如何使通用對話框中文化
答:對話框的中文化
比如說,QColorDialog的與文字相關(guān)的部分,主要在qcolordialog.cpp文件中,我們可以從qcolordialog.cpp用 lupdate生成一個ts文件,然后用自定義這個ts文件的翻譯,再用lrelease生成一個.qm文件,當(dāng)然了,主程序就要改變要支持多國語言了,使用這個.qm文件就可以了。

另外,還有一個更快的方法,在源代碼解開后有一個目錄translations,下面有一些.ts, .qm文件,我們拷貝一個:
Quote:

cp src/translations/qt_untranslated.ts ./qt_zh_CN.ts

然后,我們就用Linguist打開這個qt_zh_CN.ts,進(jìn)行翻譯了,翻譯完成后,保存后,再用lrelease命令生成qt_zh_CN.qm,這樣,我們把它加入到我們的qt project中,那些系統(tǒng)的對話框,菜單等等其它的默認(rèn)是英文的東西就能顯示成中文了。

9、在Windows下Qt里為什么沒有終端輸出?
答:把下面的配置項(xiàng)加入到.pro文件中
Quote:

win32:CONFIG += console


10、Qt 4 for X11 OpenSource版如何靜態(tài)鏈接?
答:編譯安裝的時候加上-static選項(xiàng)
Quote:
./configure -static  //一定要加static選項(xiàng)
gmake
gmake install

然后,在Makefile文件中加 static 選項(xiàng)或者在.pro文件中加上QMAKE_LFLAGS += -static,就可以連接靜態(tài)庫了。

11、想在源代碼中直接使用中文,而不使用tr()函數(shù)進(jìn)行轉(zhuǎn)換,怎么辦?
答:在main函數(shù)中加入下面三條語句,但并不提倡
Quote:
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

或者
Quote:
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

使用GBK還是使用UTF-8,依源文件中漢字使用的內(nèi)碼而定
這樣,就可在源文件中直接使用中文,比如:
Quote:
QMessageBox::information(NULL, "信息", "關(guān)于本軟件的演示信息", QMessageBox::Ok, QMessageBox::NoButtons);


12、為什么將開發(fā)的使用數(shù)據(jù)庫的程序發(fā)布到其它機(jī)器就連接不上數(shù)據(jù)庫?
答:這是由于程序找不到數(shù)據(jù)庫插件而致,可照如下解決方法:
在main函數(shù)中加入下面語句:
Quote:
QApplication::addLibraryPath(strPluginsPath");

strPluginsPath是插件所在目錄,比如此目錄為/myapplication/plugins
則將需要的sql驅(qū)動,比如qsqlmysql.dll, qsqlodbc.dll或?qū)?yīng)的.so文件放到
/myapplication/plugins/sqldrivers/
目錄下面就行了
這是一種解決方法,還有一種通用的解決方法,即在可執(zhí)行文件目錄下寫qt.conf文件,把系統(tǒng)相關(guān)的一些目錄配置寫到qt.conf文件里,詳細(xì)情況情參考Qt Document Reference里的qt.conf部分


13、如何創(chuàng)建QT使用的DLL(.so)以及如何使用此DLL(.so)
答:創(chuàng)建DLL時其工程使用lib模板
Quote:
TEMPLATE=lib

而源文件則和使用普通的源文件一樣,注意把頭文件和源文件分開,因?yàn)樵谄渌绦蚴褂么薉LL時需要此頭文件
在使用此DLL時,則在此工程源文件中引入DLL頭文件,并在.pro文件中加入下面配置項(xiàng):
Quote:
LIBS += -Lyourdlllibpath -lyourdlllibname

Windows下和Linux下同樣(Windows下生成的DLL文件名為yourdlllibname.dll而在Linux下生成的為libyourdlllibname.so

14、如何啟動一個外部程序
答:可使用QProcess和QThread這兩個類結(jié)合使用的方法來處理,以防止在主線程中調(diào)用而導(dǎo)致阻塞的情況
先從QThread繼承一個類,重新實(shí)現(xiàn)run()函數(shù):
Quote:

class MyThread : public QThread
{
public:
    void run();
};

void MyThread::run()
{
    QProcess::execute("notepad.exe");
}

這樣,在使用的時候則可定義一個MyThread類型的成員變量,使用時調(diào)用其start()方法:
Quote:

class ...............
{...........
MyThread thread;
............
};

.....................
thread.start();


15、如何打印報表
答:Qt目前對報表打印支持的庫還很少,不過有種變通的方法,就是使用XML+XSLT+XSL-FO來進(jìn)行報表設(shè)計(jì),XML輸出數(shù)據(jù),用XSLT將XML數(shù)據(jù)轉(zhuǎn)換為XSL-FO格式的報表,由于現(xiàn)在的瀏覽器不直接支持XSL-FO格式的顯示,所以暫時可用工具(Apache FOP, Java做的)將XSL-FO轉(zhuǎn)換為PDF文檔來進(jìn)行打印,轉(zhuǎn)換和打印由FOP來做,生成XSL-FO格式的報表可以由Qt來生成,也可以由其它內(nèi)容轉(zhuǎn)換過來,比如有工具(html2fo)將HTML轉(zhuǎn)換為XSL-FO。

16、如何在系統(tǒng)托盤區(qū)顯示圖標(biāo)
答:在4.2及其以上版本中使用QSystemTrayIcon類來實(shí)現(xiàn)

17、怎樣將日志輸出到文件中
答:(myer提供)
Quote:

void myMessageOutput( QtMsgType type, const char *msg )
{
    switch ( type ) {
        case QtDebugMsg:
            //寫入文件;
            break;
        case QtWarningMsg:
            break;
        case QtFatalMsg:
            abort();
    }
}

int main( int argc, char** argv )
{
    QApplication app( argc, argv );
    qInstallMsgHandler( myMessageOutput );
    ......
    return app.exec();
}

qDebug(), qWarning(), qFatal()分別對應(yīng)以上三種type。

18、如何將圖像編譯到可執(zhí)行程序中去
答:使用.qrc文件
寫.qrc文件,例如:
res.qrc
Quote:

<!DOCTYPE RCC><RCC version="1.0">
<qresource>
    <file>images/copy.png</file>
    <file>images/cut.png</file>
    <file>images/new.png</file>
    <file>images/open.png</file>
    <file>images/paste.png</file>
    <file>images/save.png</file>
</qresource>
</RCC>

然后在.pro中加入下面代碼:
Quote:

RESOURCES    = res.qrc


在程序中使用:
Quote:

...
:images/copy.png
...


19、如何制作不規(guī)則形狀的窗體或部件
答:請參考下面的帖子
http://www.qtcn.org/bbs/read.php?tid=8681
posted on 2007-09-27 18:21 北風(fēng)之神007 閱讀(3077) 評論(0)  編輯 收藏 引用 所屬分類: QT
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品欧美日韩专区| 亚洲香蕉伊综合在人在线视看| 久久久一本精品99久久精品66| 亚洲一区二区三区四区视频| 一本久久知道综合久久| 亚洲一区二区视频在线| 一区二区三区视频在线看| 一本色道久久综合亚洲精品不卡| 一区二区三区免费看| 亚洲影院免费| 久久亚洲春色中文字幕久久久| 久久久夜精品| 欧美日韩亚洲精品内裤| 国产精品一区视频网站| 国产最新精品精品你懂的| 在线精品观看| 夜夜精品视频一区二区| 欧美中文字幕视频| 亚洲大片在线| 中文精品视频一区二区在线观看| 午夜精品一区二区三区四区| 久久久久久香蕉网| 欧美日韩亚洲一区| 韩日欧美一区二区| 在线视频精品一| 久久人人九九| 一区二区三区蜜桃网| 巨胸喷奶水www久久久免费动漫| 欧美美女bb生活片| 黄色一区二区三区| 亚洲欧美资源在线| 亚洲欧洲一区二区在线观看| 香蕉国产精品偷在线观看不卡| 美女图片一区二区| 国产日韩欧美综合一区| 一区二区不卡在线视频 午夜欧美不卡在| 午夜精品国产更新| 亚洲精品影视在线观看| 久久免费少妇高潮久久精品99| 国产精品videossex久久发布| 亚洲国产高清一区二区三区| 欧美一区二区视频观看视频| 亚洲精品在线观看视频| 噜噜噜久久亚洲精品国产品小说| 国产精品欧美久久久久无广告| 亚洲精品一区二| 久久综合婷婷| 欧美一区二区三区视频免费播放| 欧美视频在线观看免费| 亚洲精选91| 欧美激情一区二区三区高清视频| 性欧美激情精品| 国产精品夜夜夜| 亚洲在线日韩| 国产精品夫妻自拍| 亚洲永久精品国产| 亚洲国产精品精华液网站| 欧美一区二区精品| 在线视频一区观看| 欧美日韩亚洲一区二区| 99热在这里有精品免费| 免费看亚洲片| 久久久人成影片一区二区三区观看| 国产欧美日韩激情| 欧美一区二区三区啪啪| 亚洲欧美韩国| 国产一区二区精品| 久久久国产精品一区| 欧美一区二区三区视频在线观看 | 狠狠色伊人亚洲综合成人| 久久福利毛片| 久久久不卡网国产精品一区| 国产曰批免费观看久久久| 久久全国免费视频| 美女国产一区| 日韩视频在线免费观看| 99精品视频免费观看| 国产精品入口夜色视频大尺度 | 91久久香蕉国产日韩欧美9色| 欧美成人免费在线| 这里只有视频精品| 亚洲欧美久久久| 在线日韩欧美| 99国内精品久久| 国产伦精品一区二区三区免费 | 亚洲精品社区| 亚洲图色在线| 在线成人欧美| aa亚洲婷婷| 极品尤物av久久免费看| 欧美高清在线视频观看不卡| 欧美日韩国产999| 久久成人免费视频| 两个人的视频www国产精品| 99在线观看免费视频精品观看| 亚洲小说欧美另类社区| **性色生活片久久毛片| 一本在线高清不卡dvd| 在线看国产一区| 亚洲影院免费观看| 日韩视频一区二区三区在线播放| 亚洲欧美精品在线| 亚洲乱码国产乱码精品精可以看| 亚洲一区精品在线| 亚洲精品色图| 久久久五月天| 欧美在线视频播放| 欧美日韩性生活视频| 农村妇女精品| 国产午夜精品美女视频明星a级| 亚洲国产日韩欧美一区二区三区| 伊人狠狠色j香婷婷综合| 午夜日韩在线观看| 亚洲毛片在线看| 久久精品系列| 午夜精品www| 欧美激情视频在线播放| 久久久久久香蕉网| 国产精品久久久久天堂| 亚洲激情女人| 亚洲电影免费| 久久精品人人做人人爽| 西瓜成人精品人成网站| 欧美电影免费观看网站| 裸体一区二区| 国内精品久久久久久久影视麻豆| 一区二区三区四区五区在线| 亚洲精品国产精品国自产观看浪潮| 羞羞色国产精品| 亚洲欧美在线高清| 欧美视频中文字幕| 亚洲毛片av| 一本高清dvd不卡在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲尤物视频网| 欧美日韩一区在线观看视频| 亚洲免费精品| 亚洲一区二区三区激情| 欧美日韩一区高清| 亚洲天堂成人在线视频| 亚洲欧美伊人| 国产日韩欧美成人| 欧美在线黄色| 久久资源av| 亚洲国产精品一区二区第四页av | 国产精品永久入口久久久| 在线视频日韩| 久久久国产精品亚洲一区| 好吊色欧美一区二区三区四区 | 亚洲精品自在久久| 欧美日本韩国在线| 中文亚洲视频在线| 久久精品国产精品| 在线观看91精品国产麻豆| 鲁大师影院一区二区三区| 亚洲激情精品| 午夜精品久久一牛影视| 国产三级精品三级| 你懂的视频一区二区| 亚洲伦理在线免费看| 欧美亚洲一区在线| 伊人夜夜躁av伊人久久| 美女国内精品自产拍在线播放| 91久久久一线二线三线品牌| 亚洲午夜成aⅴ人片| 国产一区二区三区久久久久久久久 | 亚洲第一中文字幕在线观看| 欧美成人a视频| 一区二区三区av| 久久久蜜桃一区二区人| 久久久国产一区二区| 亚洲人体影院| 国产精品sm| 久久精品国产77777蜜臀| 欧美激情精品久久久六区热门 | 亚洲视频电影图片偷拍一区| 久久久久国产一区二区| 亚洲人成网站在线播| 国产精品久久久久一区二区三区共| 性久久久久久| 日韩一级精品视频在线观看| 久久女同精品一区二区| 一区二区三区日韩在线观看| 国产一区二区三区四区五区美女 | 99re亚洲国产精品| 久久综合中文字幕| 午夜精品福利在线观看| 亚洲日本在线视频观看| 国产一区二区三区久久久| 欧美激情一区二区三区在线| 香蕉免费一区二区三区在线观看| 亚洲国产精品福利| 久久一区二区三区国产精品| 亚洲欧美另类国产| 99综合精品| 亚洲精品日韩精品| …久久精品99久久香蕉国产 | 一区二区成人精品 | 国产精品最新自拍| 国产精品xnxxcom|