void open_devmgmt::on_pushButton_clicked()
{

    //qt有类曰:QProcess。举例说明
    QProcess *process = new QProcess;
    process->start(tr("mmc devmgmt.msc"));
    //打开设备管理器
}


void open_devmgmt::on_pushButton_2_clicked()
{

QGraphicsScene *scene = new QGraphicsScene;
scene->addPixmap(QPixmap("D:/time.png"));
ui.graphicsView->setScene(scene);
//ui.graphicsView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
//ui.graphicsView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

}
void open_devmgmt::on_pushButton_3_clicked()
{

    QStatusBar *bar = ui.statusBar;
    QLabel *lastLabel = new QLabel;
    lastLabel->setMinimumSize(150,20);
    lastLabel->setFrameShape(QFrame::WinPanel);
    lastLabel->setFrameShadow(QFrame::Plain);
    bar->addPermanentWidget(lastLabel);
    //这个是靠右边增加
    //bar->addWidget(lastLabel);
    //这个是靠左边增加
     lastLabel->setText(tr("Developed by xxx"));
}

qt串口通信的介绍: 先open,然后set;可以先定义一个基本的PortSettings,然后打开串口,打开之后,在set各种属性。然后就可以开始通信了。因为windows上的串口是1-256,所以可以com1--com256都open一遍,能打开就说明此端口存在,不能打开就说没无此端口,然后对于打开成功的要记得关闭。这样就可以用一个comboBox显示可用端口。

关于new的部件,和qt的自动回收内存:

据大家公认和消息,(本人没有去搜索官方文档)对于局部的变量,new的部件,在窗口部件析构的时候,会自动被delete。所以对于写gui来说,我们一般都是在类h文件中,增加一下声明,然后在类的c文件中new,对于这些new的部件,都不用考虑delete问题。哈哈。

关于qt调用外部程序:

qt有类曰:QProcess。举例说明
QProcess *process = new QProcess;
process->start(tr("mmc devmgmt.msc"));   
//打开设备管理器
更详细说明,请参考帮助文档。


关于显示图片:

scene = new QGraphicsScene;
scene->addPixmap(QPixmap(":icon/logo.png"));
ui->graphicsView->setScene(scene);
ui->graphicsView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
ui->graphicsView->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);


注意这个图片格式只能是png,别的显示不了,方然肯定也有其他的解决办法可以显示。我这里就改改图片格式,反正png大小更小,用起来更好。

关于QLabel和超链接

等等,好像不起作用,使用它rich text编辑框来编辑,可生成完整的html,才起作用,自己只要稍作修改即可。对于超链接,还必须在代码中设置ui->label_4->setOpenExternalLinks(true); 否则超连接无效。

关于关闭窗口事件:

通过继承void MainWindow::closeEvent(QCloseEvent *e)
{
if(){
e->accept();
}else{
}
}
对于有快捷键关闭的,void MainWindow::keyPressEvent(QKeyEvent *ek)
{
if(ek->key()== (Qt::Key_Control + Qt::Key_Q)){
ek->accept();
}else{
}
}


关于状态栏:简单的可以只设置setStatusTip。复杂的就要定义一个StatusBar

两者可以共存。。

QStatusBar *bar = ui->statusBar;
lastLabel = new QLabel;   
lastLabel->setMinimumSize(150,20);    
lastLabel->setFrameShape(QFrame::WinPanel);
lastLabel->setFrameShadow(QFrame::Plain);
bar->addPermanentWidget(lastLabel);
//这个是靠右边增加    
//bar->addWidget(lastLabel);
//这个是靠左边增加
 lastLabel->setText(tr("Developed by xxx"));


(实习编辑:HJ)