天下

记录修行的印记

QT学习笔记(5):进度条对话框

//MyWidget.h
#pragma once
#include 
<QWidget>
#include 
<QPushButton>

class MyWidget:public QWidget
{
    Q_OBJECT
public:
    MyWidget();
public:
    QPushButton m_btnQuit;
    QPushButton m_btnTest;

public slots:
    
void runTestDialog();
}
;

 

//MyDialog.cpp
#include "MyDialog.h"


MyDialog::MyDialog(QWidget
* parent,Qt::WindowFlags f)
    :QDialog(parent,f)
{
    m_pLayout    
= new QGridLayout(this);
    
this->setWindowTitle(tr("run Test Dialog"));
    
//this->setFixedHeight(200);
    this->setFixedWidth(640);

    m_pbtnQuit 
= new QPushButton("Quit");
    m_pbtnTestQFileDialog 
= new QPushButton("Test QFileDialog");
    m_pbtnTestQFileDialog
->setFixedWidth(150);

    m_pbtnTestQColorDialog 
= new QPushButton("Test QColorDialog");
    m_pbtnTestQFontDialog 
= new QPushButton("Test QFontDialog");

    m_pFrameColor 
= new QFrame;
    m_pFrameColor
->setFrameShape(QFrame::Box);
    m_pFrameColor
->setAutoFillBackground(true);

    m_pEditFile 
= new QLineEdit;
    
//m_pEditFile->resize(200,20);
    

    m_pEditFont 
= new QLineEdit;
    m_pEditFont
->setText( trUtf8("\xE5\xAD\x97\xE4\xBD\x93\xE6\xB5\x8B\xE8\xAF\x95 Font Test"));
    
//m_pEditFont->setMinimumHeight(40);
    
    m_pLayout
->addWidget(m_pbtnTestQFileDialog,0,0);
    m_pLayout
->addWidget(m_pEditFile,0,1);

    m_pLayout
->addWidget(m_pbtnTestQColorDialog,1,0);
    m_pLayout
->addWidget(m_pFrameColor,1,1);

    m_pLayout
->addWidget(m_pbtnTestQFontDialog,2,0);
    m_pLayout
->addWidget(m_pEditFont,2,1);
    m_pLayout
->addWidget(m_pbtnQuit,5,0);

    m_pLayout
->setMargin(15);
    m_pLayout
->setSpacing(10);


    connect(m_pbtnQuit,SIGNAL(clicked()),qApp,SLOT(quit()) );

    connect(m_pbtnTestQFileDialog,SIGNAL(clicked()),SLOT(TestQFileDialog()) );
    connect(m_pbtnTestQColorDialog,SIGNAL(clicked()),SLOT(TestQColorDialog()) );
    connect(m_pbtnTestQFontDialog,SIGNAL(clicked()),SLOT(TestQFontDialog()) );

}

void MyDialog::TestQFileDialog()
{
    QProgressDialog
*  pDlg = new QProgressDialog(this);
    
int nMax = 100001;
    pDlg
->setLabelText("Test QProgressDialog");
    pDlg
->setRange(0,nMax-1);
    
//pDlg->setModal(false);
    pDlg->setAutoClose(true);
    pDlg
->show();
    
//pDlg->exec();
    
    
for (int i=0;i<nMax;i++)
    {
        
if (pDlg->wasCanceled())
        {
            qDebug() 
<< pDlg->wasCanceled();
            
break;
        }
        pDlg
->setValue(i);
        qApp
->processEvents();
        
//if (i==50000)
        
//{
        
//    pDlg->close();
        
//    break;
        
//}
    }
    delete pDlg;
    
//QString hello = tr("Hello");
    
//QString world = tr("World");

    
//QMessageBox::information(this,hello,world);

    
//QString filename = QFileDialog::getOpenFileName(this,"Test QFileDialog","/","C++ files(*.cpp)");
    
//m_pEditFile->setText(filename);
}

void MyDialog::TestQColorDialog()
{
    QColor color  
= QColorDialog::getColor();
    
if (color.isValid())
    {
        m_pFrameColor
->setPalette(color);
    }
}
void MyDialog::TestQFontDialog()
{
    
bool ok;
    QFont font 
= QFontDialog::getFont(&ok);
    
if (ok)
    {
        
//font.setPointSize(24);
        m_pEditFont->setFont(font);
    }
}


 

posted on 2012-08-24 16:31 天下 阅读(981) 评论(0)  编辑 收藏 引用 所属分类: QT


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


<2011年10月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

导航

统计

常用链接

留言簿(4)

随笔分类(378)

随笔档案(329)

链接

最新随笔

搜索

最新评论