在Qt中如何简单设计一个文件和图像浏览器

马肤
这是懒羊羊

文本浏览器

        设计一个文本浏览器程序,可以打开、显示 txt、html等文件。

 1.在Qt Designer中设计一个菜单其中包含打开和退出选项:

2. 在 QMainWindow 构造函数中把 textBrower 设为主窗口的中心部件,这样整个窗口就成了包含 textBrower 的单文档窗口了。

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->setCentralWidget(ui->textBrowser);
}

 3.在打开菜单响应操作中选择文件,读取文件,并将文件输出到 textBrower 部件中:

void MainWindow::on_actionopen_triggered()
{
    QString fileName=QFileDialog::getOpenFileName(this,
    tr("open Files"),"",tr("Files(* .txt *.cpp *.h *.html * .htm)"));
    QFile myFile(fileName);
    if(!myFile.open (QIODevice::ReadOnly | QIODevice::Text))
    return;
    QTextStream in(&myFile);
    QString m_Text=in.readAll();
    if (fileName .endsWith ("htm")||fileName.endsWith("html")){
        ui->textBrowser->setHtml(m_Text);
    }else
        ui->textBrowser->setPlainText(m_Text);
}

 4.编译运行一下,可以看到很少的代码,实现了很实用的功能。这就是 Qt 设计语言的魅力。


图像浏览器

1.第一步和上节一样,在Form中,用Graphics View来替换textBrower。

2.在头文件中添加QGraphicsScene对象:

QGraphicsScene* scene;

3.在构造函数中,为 graphicsView 设置场景,并作为主窗口中心部件:

scene = new QGraphicsScene();
ui->graphicsView->setScene(scene);
ui->graphicsView->show();
this->setCentralWidget(ui->graphicsView);
showMaximized();

 4.修改“打开”响应菜单,添加以下代码,在 Graphics View 中显示图像:

void MainWindow::on_actionopen_triggered()
{
    QString fileName=QFileDialog::getOpenFileName(this,tr("open Image"),"",tr("Image riles(* .png * .jpg x .bmp)"));
    QPixmap myImage,myImage2;
    myImage.load(fileName);
    myImage2=myImage.scaled(ui->graphicsView->width(),ui->graphicsView->height(),Qt::KeepAspectRatio,Qt::FastTransformation);
    scene->clear();
    scene->addPixmap(myImage2);
}

5.编译运行,打开图片:


感谢各位的阅读!! 


文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复:表情:
评论列表 (暂无评论,0人围观)

还没有评论,来说两句吧...

目录[+]

取消
微信二维码
微信二维码
支付宝二维码