现在的位置: 首页 > 综合 > 正文

QT常识

2018年02月01日 ⁄ 综合 ⁄ 共 2554字 ⁄ 字号 评论关闭

1 QWidget类有什么用途?
  在Qt应用程序中,QWidget用做工作空间.它是底层窗口,在其上可以放置其他对象,如按钮等.

   QWidget 是Qt中所有widget部件(比如QDialog、QPushButton、QLabel)的基类。

2 a.setMainWidget(&mainwindow);语句的意义是什么?
  这段代码告诉Qt,说明mainwindow对象是程序的主部件.当主部件关闭时,整个程序随之结束.
  (主部件与其他Qt部件的区别是:当主部件终止时,整个程序就运行结束.)

3 我不理解setGeometry()中的参数究竟代表什么意思?
  这一点比较容易混淆.你应该明白,象素(0,0)表示监视器的左上角,而不是我们习惯的左下角.因此,如果你在主窗口中使用 setGeometry,setGeometry的第一个参数定义在屏幕的左边和窗口的左上角之间的象素数.第二个参数定义在屏幕的上边和窗口的左上角之间的象素数.接下来的两个参数以象素为单位定义窗口的宽度和高度.一旦你习惯它,这也就不难理解了.

4 为什么不必调用每个对象的show()函数?
  当调用父部件的show()函数时,子部件被自动显示.hide(),close()

5 为什么输入this指针代替父部件?
  this指针表示在当前类中还未创建的对象.因此,如果设置this指针作为父部件,父部件将是在后面的main()函数中所要创建的对象.

6 什么是qApp?
  qApp的创建和this指针想法相同.它是一个指向还未创建的QApplication对象(它在main()中创建)的指针.

7 为什么在main()函数中需要调用a.exec()函数?
  在这一行,将程序控制权传递给Qt库.从这里开始,Qt负责处理用户交互和其他程序操作.

8 我的编译器报告传递给connect()函数的参数错误,这是为什么?
  connect()函数参数使用对象指针,而不是对象本身.因此,你必须确认所提供的参数是正确的.

9 能否将多个槽连接到一个信号?
  能够,这是可能的.只需为每个连接调用一次connect()函数.

  connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(showSlot()));

10在调用connect()函数时,省略槽所属对象名称意味着什么?
  这意味着槽在当前类中定义(也就是说,类是当前所定义类).因此,只能从具有槽的类成员函数中执行这类调用.

11是否能够将一个信号连接到其他信号?如果能,应该怎样操作?
  可以.只需象通常一样使用connect()函数,如:
  connect(button,SINGAL(clicked()),this,SINGAL(anothersignal()));

12检查是否点击QPushButton对象使用什么信号?
  clicked()信号.(应用QPushButton::setDefault()的按钮将变为默认按钮--即用户按回车键时将点击的按钮)

13使用Qprinter::setOrientation()函数
    (向它传递Qprinter::Portrait或Qprinter::Landscape)能够设置打印方向.


14是否能够选择多个文件?
  可以,只要使用QFileDialog::getOpenFiles()函数(注意结尾的s)

15重新编译Qt非常耗时!有没有办法能够加速这一过程?
  不能加速实际编译.但是,如果你的存储空间足够,可以在首次编译Qt后将.o文件保留在硬盘上.之后,如果需要重新编译Qt库(例如,增加对gif的支持),这一过程将大大加快.当运行 make clean命令时,.o文件被删除.因此,如果你有足够的空间,可以跳过这一步.

16当使用当前时间时,时间将自动调整为程序运行时区的当地时间吗?
  是的,这依赖于计算机的系统时钟.因此,如果它被设置为当地时间,当调用QTime::getCurrent()时QTime将得到当地时间.这也意味着如果你的系统时钟设置是错误的,QTime::getCurrent()将返回错误的时间.

 

ui->label_p1->setPixmap(QPixmap("C:/1.gif"));

MainWindow::setWindowTitle(tr("唯心安乐"));//tr

    setWindowIcon(QIcon(":/images/dd.jpg"));
//    this->setWindowFlags(Qt::FramelessWindowHint);
    setWindowFlags(Qt::CustomizeWindowHint);
    setWindowFlags(Qt::WindowCloseButtonHint|Qt::WindowMinimizeButtonHint);//只要关闭按钮


    statusLabel = new QLabel("<font color=red>Hello,Qt!</font>");
    ui->statusBar->addWidget(statusLabel);//add2

 

QT中窗口刷新事件。void QWidget::paintEvent ( QPaintEvent * ) Paint这个事件只要是窗体部件需要被重绘了就会被调用
Qt Creator创建项目自带的Main Window主窗体默认是包含一个QMenuBar、一个图2-15 Hello程序界面设计结果QToolBar和一个QStatusBar,Hello实例用不到这些控件,可以在窗体中删除这些自带控件。
关于窗口关闭的操作,在这里指出常用的三个槽,即quit(),exit()以及close()。
1.关闭主窗口并退出程序是 QApplication::exit() 2.如果是QDialog,就accept() 或 reject() 3.对于所有QWidget:close()

QString strfile;
    strfile = QCoreApplication::applicationDirPath();
    qDebug()<<"Path:"<<strfile;
    QDir dir;
    qDebug() <<"Path2"<<  dir.currentPath() << endl;

 

抱歉!评论已关闭.