何永琪吧 关注:5贴子:243

回复:Qt 个人资料整理

取消只看楼主收藏回复

从 Qt 的 delete 说开来
http://blog.csdn.net/dbzhang800/article/details/6300025
Qt 智能指针学习
http://blog.csdn.net/dbzhang800/article/details/6403285


IP属地:黑龙江17楼2016-06-23 17:51
回复
    创建工具条的方法addToolBar()函数有3种原型,分别介绍如下。
    第1种:
    void QMainWindow::addToolBar ( Qt::ToolBarArea area, QToolBar * toolbar )
    这种方法是最为灵活的一个,
    第1个参数area负责设置工具栏的布局方向,
    比如是从左到右( left-to-right ),还是从上到下( up-to-down)等等;
    第2个参数toolbar是工具栏对象的实例。
    举个例子,把我们的程序修改成采用这个函数原型的形式:
    第2种:
    void QMainWindow::addToolBar ( QToolBar * toolbar )
    这种方法是默认将工具栏放置在主窗口的顶部工具栏区域(Top Toolbar Area ),
    它的作用等同于
    addToolBar(Qt::TopToolBarArea, toolbar),实际上是第1种方法的一个具体例子。
    这种方法有一个不灵活的地方,
    就是默认情况下它已经限定工具栏必须创建在主窗口的顶部工具栏区域,
    那么由此工具栏的布局方向也已经确定是水平方向的,不可更改了。
    第3种:
    QToolBar * QMainWindow::addToolBar ( const QString & title )
    读者朋友可以看到,我们的程序中就是使用了这种方法。
    在使用这种方法时,程序会自动的首先创建一个QToolBar对象,
    并把它的窗口标题设置为title ,
    然后将它放置在主窗口的顶部工具栏区域。
    使用这种写法,也不能设置工具栏的布局方向。
    第2~4行调用QToolBar的addAction()函数在工具条中插入属于本工具条的动作。
    toolBarFile->addAction(fileNewAction)
    第5~8行编辑工具条的实现, 与文件工具条类似。
    oolBarFile->setMovable(false);
    toolBarFile->setAllowedAreas(Qt::AllToolBarAreas);


    IP属地:黑龙江18楼2016-06-24 15:13
    回复
      四楼被系统删除,重新发一遍
      标准颜色对话框( QColorDialog)
      QColor color = QColorDialog::getColor();
      if( color.isValid() )
      {
      QPalette palette;
      palette.setColor(QPalette::WindowText,color);
      ui->label->setPalette(palette);
      //QString str;
      //str = "color:"+color.name();
      //ui->label->setStyleSheet(str);
      //ui->label->setPalette(QPalette(color));
      //ui->label->setAutoFillBackground(true);
      }


      IP属地:黑龙江19楼2016-06-24 15:16
      回复
        我就日了整个动物园了,麻蛋,就是不让我发?!!!老子发图片!!!
        垃圾百度贴吧!!


        IP属地:黑龙江28楼2016-06-24 15:38
        回复
          工具栏是可移动和停靠的窗口,
          它可停靠的区域由 Qt::ToolBarArea枚举值所决定,
          默认值是Qt::AllToolBarAreas, 即出现在主窗口的顶部工具栏区域。
          setAllowAreas()函数用来指定工具条可停靠的区域,
          如:
          toolBarEdit->setAllowAreas(Qt::TopToolBarArea | Qt::LeftToolBarArea);
          它限定了“ 编辑”工具条只可以出现在主窗口的顶部或左侧。
          表8-3列举了Qt工具栏所有可以停靠的区域


          IP属地:黑龙江29楼2016-06-24 15:57
          回复
            创建状态栏
            随着菜单和工具栏的完成,已经为设置应用程序的状态栏做好了准备。
            在程序的普通模式下,状态栏用于显示状态提示和其他的一些临时消息。
            tipLabel = new QLabel(tr("ready"));
            tipLabel->setAlignment(Qt::AlignHCenter);
            tipLabel->setMinimumSize(tipLabel->sizeHint());
            statusBar()->addWidget(tipLabel);
            QMainWindow::statusBar()函数返回一个指向状态栏的指针。
            在第一次调用statusBar()函数的时候会创建一个状态栏。
            状态栏指示器一般是一些简单的 QLabel,可以在任何需要的时候改变它们的文本。
            当把这些 QLabel添加到状态栏的时候,它们会自动被重定义父对象,以便让它们成为状态栏的子对象


            IP属地:黑龙江30楼2016-06-24 16:03
            回复
              创建菜单项。
              首先设计主菜单。
              在主窗口上用鼠标左键双击【在这里输入】 区域,
              在出现的文本框中输入第一个菜单的名字“ &File”,
              并按下【 Enter】键或【 Return】 键确认输入。
              其中“ &” 表示把字符F作为菜单显示文本助记符(在字母F下加下划线,即显示为“ File”),
              作用是将“Alt+F” 设置为加速键( accelerator)。
              当应用程序处在活动状态时,通过按下加速键“ Alt+F” ,就可以将【 File】菜单激活;
              或者主窗口的菜单栏处在活动的状态下(通过按下” Alt” 键就可以将菜单栏激活),
              在键盘上直接按下“ F” 键就可以激活【 File】菜单


              IP属地:黑龙江31楼2016-06-24 17:08
              回复
                也可以在菜单项中输入中文名称,如“ 文件”、 “ 编辑”、 “ 帮助” 等,
                但我们不推荐直接输入中文字符。
                输入中文的常见做法是在主窗口上用鼠标左键双击“ 在这里输入” 区域,
                在出现的文本框中输入第一个菜单的名字“ 文件(&F)”,
                并按下【 Enter】 键或【 Return】 键确认输入。
                同上,字母F将作为助记符,显示为“ 文件(F)” 。
                小贴士:
                输入完毕后, 一定要按下回车键( Enter或Return)予以确认,否则刚输入的字符将无效。
                要拒绝输入的字符,可以按下【 Escape】 键,
                也可以同时按下“ Ctrl+Z” 组合键取消刚才的输入


                IP属地:黑龙江32楼2016-06-24 17:11
                回复
                  手写菜单动作
                  createActions()
                  {
                  QAction * actionOpenFile = new QAction(tr("Open"),this);
                  actionOpenFile->setShortcut(tr("Ctrl+O"));
                  actionOpenFile->setStatusTip((tr("open a file")));
                  connect( actionOpenFile,SIGNAL(triggered()),this,SLOT(slotOpenFile()) );
                  }
                  createMenus()
                  {
                  QMenu * menuFile = this->menuBar()->addMenu(tr("File"));
                  menuFile->addAction(actionOpenFile);
                  }


                  IP属地:黑龙江33楼2016-06-27 09:43
                  回复
                    中心窗口部件专题从前面的例子中我们可以看到,
                    Qt程序中的主窗口通常具有一个中心窗口部件。
                    从理论上来讲,任何继承自QWidget的类的派生类的实例,都可以作为中心窗口部件使用。
                    下面给出的是所有可能情形的概述。
                    ⒈使用标准的Qt窗口部件
                    ( Standard Widget)像QWidget、 Qlabel以及QTextEdit等等这样的标准窗口部件都可以用作中心窗口部件。
                    ⒉使用自定义窗口部件( User-Define-Widget)
                    有时候,某些有特殊要求的应用程序需要在自定义窗口部件中显示数据,
                    你可以把自定义的窗口部件作为中心窗口部件。
                    例如,
                    你的绘图编辑器程序程序就可以使用类似名为PhotoEditor的自定义窗口部件作为自己的中心窗口部件。
                    3. 使用一个带布局管理器的普通 Widget有时候,应用程序的中央区域会被许多窗口部件所占用。
                    这时就可以通过使用一个作为所有这些其他窗口部件父对象的 QWidget,
                    以及通过使用布局管理器管理这些子窗口部件的大小和位置来完成这一特殊情况。
                    4. 使用切分窗口( QSplitter)
                    其实,这种情况是上一种情况的一个例子。
                    多个窗口部件一起使用的另一种方法是使用QSplitter。
                    我们把QSplitter作为一个容器,在其中容纳其它的窗口部件,
                    这时的中心窗口部件就是一个 QSplitter。
                    QSplitter会在水平方向或者竖直方向上排列它的子窗口部件,
                    用户可以利用切分条( splitter handle)控制他们的尺寸大小。
                    切分窗口可以包含所有类型的窗口部件,包括其他切分窗口。
                    5. 使用多文档界面工作空间( QMdiArea)
                    如果应用程序使用的是多文档界面,
                    那么它的中心区域就会被 QMdiArea窗口部件所占据,
                    并且每个多文档界面窗口都是它的一个子窗口界面。
                    QMdiArea是在Qt4.3以后引入的一个支持多文档应用的类。
                    6. 使用工作空间部件( QWorkspace)
                    这种情况通常用于多文档应用程序中,
                    这时应用程序主窗口的中心部件是一个QWorkspace部件或者它的子类化部件。
                    但这种方法在 Qt4.5以后将被废弃。后面我们还会讲到它


                    IP属地:黑龙江34楼2016-06-27 10:37
                    回复
                      Qt4资源系统专题Qt4资源系统是与平台无关的,
                      它被用来存储应用程序可执行文件运行时使用的二进制文件(比如图标文件、翻译文件等)。
                      它也是 Qt的核心机制之一。
                      当你的应用程序总是使用一些特定的文件集合时,它会非常有用,
                      并且能够保证文件不易丢失。
                      Qt4资源系统的运转需要qmake、 rcc( (Qt's resource compiler)以及QFile的紧密配合


                      IP属地:黑龙江35楼2016-06-27 11:00
                      回复
                        资源文件的使用方法在构造函数的最后部分,
                        把窗口的图标设置为 icon.png,它是一个 PNG格式的文件。
                        Qt支持很多图像格式,包括 BMP、 GIF、 JPEG、 PNG、 PNM、 SVG、 TIFF、 XBM和XPM。
                        调用 QWidget::setWindowsIcon()函数可以设置显示在窗口左上角的图标。
                        遗憾的是,还没有一种与平台无关的可在桌面上显示应用程序图标的设置方法。
                        图形用户界面( GUI)应用程序通常会使用很多图片。
                        为应用程序提供图片的方法有多种,以下是最为常用的一些方法:
                        ⒈把图片保存到文件中,并且在程序运行时载入它们。
                        ⒉把XPM文件包含在源代码中。(这一方法之所以可行,是因为 XPM文件也是有效的C++文件。)
                        ⒊使用Qt的资源机制( Resource Mechanism)。
                        这里,我们使用了 Qt的资源机制法,
                        因为它比运行时载入文件的方法更为方便,并且该方法适用于所支持的任意文件格式。
                        我们将选中的图片存放在源代码树中名为 images的子目录下。
                        为了利用Qt的资源系统,必须创建一个资源文件( Resource File),
                        并且在识别该资源文件的.pro工程文件中添加一行代码。
                        在这个例子中,已经将资源文件命名为xxx.qrc,
                        因此只需在.pro文件中添加如下一行代码:
                        RESOURCE = xxx.qrc资源文件自身使用了一种简单的 xml文件格式。
                        这里给出的是从已经使用的资源文件中摘录的部分内容:
                        <RCC>
                        <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>
                        所有资源文件都会被编译到应用程序的可执行文件中,因此并不会弄丢它们。


                        IP属地:黑龙江36楼2016-06-27 11:21
                        回复
                          Qt中 资源机制 和 锚接窗口
                          需要更深的理解


                          IP属地:黑龙江38楼2016-06-27 12:02
                          收起回复
                            创建锚接窗口的方法和流程在主窗口程序中创建锚接窗口的一般流程如下:
                            1.创建锚接窗体创建一个QDockWidget对象的锚接窗体。
                            2.设置此锚接窗体的属性通常调用setFeatures()及setAllowedAreas()两种方法。
                            3.新建一个要插入锚接窗体的窗口部件常用的一般为QListWidget和QTextEdit。
                            4.把窗口部件插入锚接窗体调用QDockWidget的setWidget()方法。
                            5.在MainWindow中加入此停靠窗体使用addDockWidget()方法。
                            以下是一段示例代码,演示了上述方法和流程。
                            // 停靠窗口
                            QDockWidget *dock = new QDockWidget(tr("DockWindow"), this );
                            dock->setFeatures( QDockWidget::DockWidgetMovable );
                            dock->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);
                            QTextEdit *te = new QTextEdit();te->setText(tr("Dock Window!"));
                            dock->setWidget( te );
                            addDockWidget( Qt::RightDockWidgetArea, dock );


                            IP属地:黑龙江39楼2016-06-27 13:29
                            回复
                              setAllowedAreas()方法设置停靠窗体可停靠的区域,
                              原型如下:
                              void setAllowedAreas( Qt::DockWidgetAreas areas )
                              参数areas由Qt::DockWidgetAreas枚举变量指定了锚接窗体可停靠区域
                              etFeatures()方法设置停靠窗体的特性,
                              原型如下:
                              void setFeatures(DockWidgetFeatures features);
                              参数features 由QDockWidget::DockWidgetFeature枚举变量指定锚接窗体的特性


                              IP属地:黑龙江40楼2016-06-27 13:38
                              回复