《Qt基础教程之QTreeWidget和QDockWidget用法详解》由会员分享,可在线阅读,更多相关《Qt基础教程之QTreeWidget和QDockWidget用法详解(12页珍藏版)》请在人人文库网上搜索。

1、本节介绍QTreeWidget、QDockWidget的使用,以及用 QLabel显示图片的 方法。实例samp4_8 QTreeWidget以QTreeWidget为主要组件,创建一个照片管理器,实例运行时的界面如图1所示。IZ 曲,團戶立 Type=tToplTem图1实例Samp4_8运行时界面这个实例主要演示如下几个组件的使用方法。? QTreeWidget目录树组件:QTreeWidget类是创建和管理目录树结构的类。实 例使用一个QTreeWidget组件管理照片目录,可以添加、删除节点,每个节点 设置一个自定义类型,另外,还设置了一个自定义数据,图片节点存储完整文 件名,以便单击。

2、节点时显示该图片。QTreeWidget组件放置在? QDockWidget停靠区域组件:QDockWidget是可以在QMai nWindow窗口停靠, 或在桌面最上层浮动的界面组件。本实例将一个QDockWidget区域上,设置其可以在主窗口的左或右侧停靠,也可以浮动。? QLabel组件显示图片:右侧是一个 QScrollArea 组件,ScrollArea 上面放置 一个QLabel组件,通过为 QLabel设置一个QPixmap显示图片。通过 QP ixmap操作可进行缩放显示,包括放大、缩小、实际大小、适合宽度、适合 高度等。界面设计界面布局设计实例中的主窗口从QMainWindo。

3、w继承而来,界面釆用可视化设计,程序功 能主要用Action实现,主菜单和主工具栏也都由其实现。工作区左侧是一个 QDockWidget组件,在DockWidget上放置一个QTreeWidget组件,用水平布局使treeWidget 填充满停靠区。工作区右侧是 一个QScrollArea 组件,QScrollArea 组件里放置一个 QLabel组件,利用 QLabel的pixmap属性显示图片。scrollArea内部的组件釆用水平布局,当图片较小时,Label显示的图片可以自动居于 scrollArea 的中间;当Label显 示的图片超过scrollArea可显示区域的大小后,scro。

4、llArea会自动显示水平或垂直方向的卷滚条,用于显示更大的区域。在主窗口构造函数里将 ScmllArea组件设置为主窗口工作区的中心组件后, DockWidget与ScrollArea 之间自动出现分割条,可以分割两个组件的大小。QDockWidget组件属性设置在UI设计器里对DockWidget组件的主要属性进行设置,主要属性如下:? allowedAreas属性,设置允许停靠区域。由函数 setAllowedAreas(Qt:DockWidgetAreas areas)设置允许停靠区,参数areas是枚举类型Qt:DockWidgetArea 的值的组合,可以设置在窗口的左、 右、顶、。

5、底停靠,或所有区域都可停靠,或不允许停靠。本实例设置为允许左侧和右侧停靠。? features属性,设置停靠区组件的特性。由 setFeatures(DockWidgetFeatures features)函数设置停靠区组件的特性,参数 features是枚举类型 QDockWidget:DockWidgetFeature 的值的组合,枚举值如下:? QDockWidget:DockWidgetClosable :停靠区可关闭。? QDockWidget:DockWidgetMovable :停靠区可移动。? QDockWidget:DockWidgetFloatable :停靠区可浮动。? 。

6、QDockWidget:DockWidgetVerticalTitleBar:在停靠区左侧显示垂直标题栏。? QDockWidget:AllDockWidgetFeatures :使用以上所有特征。? QDockWidget:NoDockWidgetFeatures :不能停靠、移动和关闭。本实例设置为可关闭、可停靠、可浮动。QTreeWidget组件的设置在UI设计器里,双击界面上的 QTreeWidget组件,可以打开图2所示 的设计器,设计器有两页,可分别对 Columns和Items进行设计。节点节点类燮7 Q图片文件7已沁.|1fi星性text 可 S. sw 揺icon Theme。

7、 Nor. 窗 Nor.圍片丈件0自15iconr图2 QTreeWidget组件的设计器(Items页面)Colum ns页用于设计目录树的列,目录树可以有多个列。在设计器里可以 添加、删除、移动列,设置列的文字、字体、前景色、背景色、文字对齐方式、 图标等。本实例设置了两个列,标题分别为“节点”和“节点类型”。_Items页面用于设计目录树的节点,可对每个节点设置属性,如文字、字体、图标等,特别是flags 属性,可以设置节点是否可选、是否可编辑、是否 有CheckBox等,还可以设置节点的CheckState。在图2下方有一组按钮可 以新增节点、新增下级节点、删除节点、改变节点级别、平级。

8、移动节点等。使用设计器设计目录树的列和节点,适用于创建固定结构的目录树,但是 目录树一般是根据内容动态创建的,需要运用代码实现节点的创建。Actio n 设计本例的功能代码大多采用 Action 实现,在Action Editor 里设计Action,然后利用 Action 设计主菜单和主工具栏。设计完成的 Action 如图 3所示。J t - /F_! .e:7T桶可工貝崔示一MtAdMhfet 0勸归录”GrkFt aciAddFilss 0ClrltNI廡;rd眸CtrkI如片r ZooinOvf 0MO严0151片海:惶示 3CTZ.JhV/ 0-舌逊?OrUWfr 紀Quit01 。

9、t2ooinfitH 0Ctrl-HC actScanlleiris 0./ wtDa.sible 0鈔刼0B垢訓图3设计的ActionQTreeWidget 操作本实例的目录树节点操作规则本实例的目录树节点操作定义如下一些规则:?将目录树的节点分为3种类型,顶层节点、分组节点和图片节点。?窗口创建时初始化目录树,它只有一个顶层节点,这个顶层节点不能被删除, 而且不允许再新建顶层节点。?顶层节点下允许添加分组节点和图片节点。?分组节点下可以添加分组节点和图片节点,分组节点的级数无限制。?图片节点是终端节点,可以在图片节点同级再添加图片节点。?每个节点创建时设置其类型信息,图片节点存储其完整文件。

10、名作为自定义数据。?单击一个图片文件节点时,显示其关联文件的图片。为便于后面说明代码的实现,将主窗口类 Mai nWindow中增加的自定义内 容先列出来,代码如下(这些枚举类型、变量和函数的功能在后面再具体介 绍):class Mai nWin dow : public QMai nWin dowp rivate:枚举类型treeItemType,用于创建 QTreeWidgetItem 时作为节点的type,自定义类型必须大于1000/itTopitem 顶层节点;itGroupitem 组节点;itImageItem 图片enum treeItemT yp eitT op ltem=10。

11、01,itGro up ltem,itlmageltem;/枚举类型,表示列号en um treeColNumcolltem=0, colltemTy pe=1; /目录树列的编号定义QLabel *LabFileName;pixRatio;/当前图片缩放比例QPixmap curPixmap; / 当前的图片floatvoidvoidiniTree();/目录树初始化 addFolderltem(QTreeWidgetltem *p arltem, QStri ng dirName);/ 添加一个目录节点addlmageltem(QTreeWidgetltem *p arItem,QStri。

12、 ng aFile name);/ 添加一个图片节点 dis playlmage(QTreeWidgetltem *item); / 显示一个图片节点的图片ChangeCheckable(QTreeWidgetltem *ltem,bool chk);/ 更改节点的 checkable状态 cha ngeltemCa ptio n( QTreeWidgetltem *item); / 遍历改变节点标题QStri ng getFi nalFolderName(co nst QStri ng &full PathName);/ 从目录全名称中获取最后的文 件夹名称voidvoid/voidvoid。

13、目录树初始化添加顶层节点主窗口 MainWindow的构造函数会调用自定义函数 iniTree(),对目录树 进行初始化,窗口构造函数和in iTreeO代码如下:Mai nWin dow:Mai nWin dow(QWidget *parent) : QMai nWin dow (p are nt), ui( new Ui:Mai nWin dow)ui-set upU i(this);LabFileName=new QLabel(); ui-statusBar-addWidget(LabFileName);this-setCe ntralWidget(ui-scrollArea);iniT。

14、ree () ; /初始化目录树 void Mai nWin dow:i niTree() /初始化Tree/QTreeWidgetltem *item; / 节点QString dataStr=; / Item 的 Data 存储的 string ui-treeFiles-clear();/清除目录树所有节点 Qlcon icon;icon.addFile(:/images/icons/15.ico); / 设置 ICON 的图标QTreeWidgetltem* item=n ew QTreeWidgetItem(Mai nWin dow:itTo pltem); / 新建节点时设 定类型为。

15、itTopltemitem-setlco n( Mai nWin dow:colltem,ico n); /设置第 1 列的图标item-setText(MainWindow:colltem,图片文件);/设置第 1 列的文字item-setText(MainWindow:colItemType,type=itTopltem); / 设置第 2 列的文字 item-setFlags(Qt:ltemlsSelectable | Qt:ItemIsUserCheckable | Qt:ItemIsE nabled | Qt:ItemIsAutoTristate);item-setCheckStat。

16、e(colltem,Qt:Checked);/ 设置为选中item-setData(Mai nWin dow:colItem,Qt:UserRole,QVaria nt(dataStr); /设置节点第 1 列的Qt:UserRole 的 Dataui-treeFiles-addTopLevelltem(item);/ 添加顶层节点 QTreeWidget的每个节点都是一个 QTreeWidgetltem 对象,添加一个节点 前需先创建它,并做好相关设置。创建节点的语句是:item=new QTreeWidgetltem(Ma inWin dow:itT op Item);传递了一个枚举常量M。

17、ainWindow:itTopltem 作为构造函数的参数,表示 节点的类型。在构造函数里传递一个类型值之后,就可以用QTreeWidgetItem:ty pe()返回这个节点的类型值。itTopitem是在MainWindow里定义的枚举类型treeltemType的一个常量值。枚举类型treeltemType 定义了节点的类型,自定义的节点类型值必须 大于1000。QTreeWidgetItem 的setlc on()和setText()都需要传递一个列号作为参数,指定对哪个列进行设置。列号可以直接用数字,但是为了便于理解代码 和统一修改,在 MainWindow里定义了枚举类型treeC。

18、olNum, colltem 表示第 1列,colltemType 表示第2列。setFlagsQ函数设置节点的一些属性标记,是Qt:ltemFlag枚举类型常量的组合。setDataO 函数为节点的某一列设置一个角色数据,setData()函数原型为: void QTreeWidgetltem:setData(i nt colu mn, int role, const QVaria nt &value)其中,column是列号,role 是角色的值,value 是一个QVariant 类型 的数。代码中设置节点数据的语句是:item-setData(Mai nWin dow:colltem,。

19、Qt:UserRole,QVaria nt(dataStr);它为节点的第1列,角色QtrUserRole,设置了一个字符串数据dataStr。QtUserRole是枚举类型Qt:ItemDataRole中一个预定义的值,关于节点的角色和Qt:ItemDataRole会在后续章节中详细介绍。创建并设置好节点后,用 QTreeWidget:addTo pLevelItem()函数将节点作为顶层节点添加到目录树。添加目录节点kctAddFolder是用于添加组节点的Action,当目录树上的当前节点类型 是itTo pitem 或itGrou pitem 类型时,才可以添加组节点。 actAddF。

20、older的 triggeredO 信号的槽函数,以及相关自定义函数的代码如下:void MainWin dow:o n_actAddFolder_triggered()/选择一个文件夹,作为当前节点的子节点加入QStri ng dir=QFileDialog:getExist in gDirectory();/选择目录if (!dir.isEmpty() /选择目录名称不为空/QTreeWidgetItem *parItem; / 节点QTreeWidgetItem* p arltem=ui-treeFiles-curre ntltem(); /当前节点addFolderltem(parlt。

21、em,dir);/在父节点下面添加一个组节点void Mai nWin dow:addFolderltem(QTreeWidgetltem *p arltem, QStri ng dirName)/添加一个目录节点Qlcon icon (:/images/ic ons/open 3.b mp ”);/icon.addFile(:/images/icons/open3.bmp); / 设置 ICON 的图标QString NodeText=getFinalFolderName(dirName); / 从一个完整目录名称里,获得最后的文 件夹名称QTreeWidgetItem *item; / 节。

22、点item=new QTreeWidgetltem(MainWindow:itGroupitem); /新建节点,设定 type 为itGroup Itemitem-setlcon(colltem,icon); / 设置图标 item-setText(colltem,NodeText); / 最后的文件夹名称,第1 列/item-setText(colSeco nd,ty pe=itGrou pitem; data=+dirName); / 完整目录名称 item-setText(colItemTy pe,ty pe=itGrou pitem); /完整目录名称,第 2 列item-setFl。

23、ags(Qt:ltemlsSelectable | Qt:ltemlsUserCheckable | Qt:ItemIsE nabled | Qt:ItemIsAutoTristate); / 设置节点选项item-setCheckState(colltem,Qt:Checked); / 节点选中 item-setData(colltem,Qt:UserRole,QVariant(dirName); / 设置角色为 Qt:UserRole 的 Data, 存储完整目录名称parItem-addChild(item); /在父节点下面添加子节点QStri ng Mai nWin dow:getF。

24、i nalFolderName(co nst QStri ng &full PathName)/从一个完整目录名称里,获得最后的文件夹名称int cnt=fullPathName.length(); / 字符串长度int i=full PathName.last In dexOf(/);/最后一次出现的位置QStri ng str=full PathName.right(cnt-i-1); / 获得最后的文件夹的名称return str;actAddFolder的槽函数首先用文件对话框获取一个目录名称,再获取目录 树的当前节点,然后调用自定义函数addFolderltemO添加一个组节点,新添。

25、加的节点将会作为当前节点的子节点。addFolderltemO函数根据传递来的父节点parltem 和目录全称dirName,创建并添加节点。首先用自定义函数getFi nalFolderNameO获取目录全称的最后一级的文件夹名称,这个文件夹名称将作为新建节点的标题;然后创建一 个节点,创建时设置其节点类型为itGmnpItem,表示分组节点,再设置属性和 关联数据,关联数据就是目录的全路径字符串;最后调用 QTreeWidgetltem:addChild()函数,将创建的节点作为父节点的一个子节点添加图片文件节点actAddFiles 型时这个Action 码如下:添加到目录树。是添加图片。

26、文件节点的Action,目录树的当前节点为任何类 都可用。actAddFiles 的槽函数,以及相关自定义函数的代actAddFileStriggeredOvoid MainWin dow:o n_i/添加图片文件节点QStri ngList files=QFileDialog:get Open FileNames(this,选择一个或多个文件 ,lmages(*.jpg);/ 多选文件if (files.isEmpty() /如果一个文件都没选return;QTreeWidgetItem *parltem,*item; / 节点 item=ui-treeFiles-currentltem()。

27、; / 当前节点if (item-type()=itlmageltem)/若当前节点是图片节点,取其父节点作为父节点 P arItem=item-paren t();else 否则取当前节点为父节点P arItem=item;for (int i = 0; i setlcon(colltem,icon); / 设置图标item-setText(colltem,NodeText); / 最后的文件夹名称/item-setText(colSec on d,t yp e=itlmageltem; data=+aFile name); / 完整目录名称 item-setText(colItemT yp。

28、 e,t yp e=itlmageltem); / 完整目录名称 item-setFlags(Qt:ltemlsSelectable | Qt:ltemlsUserCheckable | Qt:ItemIsE nabled | Qt:ItemIsAutoTristate); / 设置节点选项item-setCheckState(colltem,Qt:Checked); / 节点选中Parltem-addChild(item); /在父节点下面添加子节点 item-setData(colltem,Qt:UserRole,QVariant(aFilename); / 设置节点 Qt:UserRol。

29、e 的 Data, 存储完整文件名称actAddFiles 的槽函数首先用 QFileDialog:getOpenFileNames(),获取图片文件列表,通过QTreeWidget:currentltem()函数获得目录树的当前节点 item。item-ty pe()将返回节点的类型,也就是创建节点时传递给构造函数的那个参数。如果当前节点类型是图片节点(itlmageltem ),就使用当前节点的父 节点,作为将要添加的图片节点的父节点,否则就用当前节点作为父节点。addlmageltemO逐一添加然后遍历所选图片文件列表,调用自定义函数图片节点到父节点下。addlmageltemO根据图片。

30、文件名称,创建一个节点并添 加到父节点下面,在使用setDataO 设置节点数据时,将图片带路径的文件名 aFilename作为节点的数据,这个数据在单击节点打开图片时会用到。当前节点变化后的响应目录树上当前节点变化时,会发射 curren tltemCha nged() 信号,为此信 号创建槽函数,实现当前节点类型判断、几个 Acti on的使能控制、显示图片 等功能,代码如下:void Mai nWin dow:o n_treeFiles_curre ntItemCha nged(QTreeWidgetltem *curre nt, QTreeWidgetltem *p revious) 。

31、/当前节点选择变化时触发Q_UNUSED (p revious);if (curre nt=NULL)return;int var=current-type();/ 节点的类型switch(var) case itT op Item: / 顶层节点ui-actAddFolder-setE nabled(true); ui-actAddFiles-setE nabled(true);ui-actDeleteItem-setEnabled(false); / 顶层节点不能删除 break;case itGro up Item: / 文件组节点 ui-actAddFolder-setE nabled。

32、(true); ui-actAddFiles-setE nabled(true); ui-actDeleteltem-setE nabled(true); break;case itImageItem: /图片文件节点ui-actAddFolder-setEnabled(false); /图片节点下不能添加目录节点 ui-actAddFiles-setE nabled(true);ui-actDeleteItem-setE nabled(true);displaylmage(current); / 显示图片 break;型,还调用 displaylmageO dis playlmageO细说明。

33、。burre nt是变化后的当前节点,通过curren t-t yp e()获得当前节点的类根据节点类型控制界面上3个Action的使能状态。如果是图片文件节点, 函数显示节点关联的图片。函数的功能实现在后面介绍QLabel图片显示的部分会详删除节点除了顶层节点之外,选中一个节点后也可以删除它。actDdeteItem实现节点删除,其代码如下:void MainWin dow:o n_actDeleteltem_tnggered()/删除节点QTreeWidgetltem* item =ui-treeFiles-curre ntitem () ; /当前节点QTreeWidgetltem* p。

34、arItem=item-parent () ; / 父节点parltem-removeChild(item) ;/移除一个子节点,并不会删除 delete item;一个节点不能移除自己,所以需要获取其父节点,使用父节点的removeChildO 函数来移除自己。removeChild() 移除一个节点,但是不从内 存中删除它,所以还需调用 delete。若要删除顶层节点,则使用 QTreeWidget:takeT op Levelltem(i nt in dex) 函数。节点的遍历目录树的节点都是QTreeWidgetltem 类,可以嵌套多层。有时需要在目录 树中遍历所有节点,比如按条件查。

35、找某些节点、统一修改节点的标题等。遍历 节点需要用到QTreeWidgetltem类的一些关键函数,还需要设计嵌套函数。actSca nltems实现工具栏上“遍历节点”的功能,其槽函数及相关自定义函数代码如下:void Mai nWin dow:o n_actSca nltems_tnggered()/遍历节点/QTreeWidgetItem *Item;for (int i=O;itreeFiles-t op LevelItemCo un t();i+)QTreeWidgetItem *item=ui-treeFiles-to pLevelltem(i); /顶层节点cha ngeltem。

36、Ca pti on (item); / 更改节点标题void MainWin dow:cha ngeltemCa pti on( QTreeWidgetItem *item) /改变节点的标题文字QStri ng str=*+item-text(colltem); / 节点标题前加“ * ”item-setText(colltem,str); / 设置节点标题if (item-childCount()0) / 如果有子节点for (int i=0;ichildCou nt();i+) /遍历子节点changeltemCaption(item-child(i); / 调用自己,可重入的函数QTr。

37、eeWidget组件的顶层节点没有父节点,要访问所有顶层节点,用到两 个函数。1.2.in tto pLevelltemCou nt():返回顶层节点个数。QTreeWidgetltem* topLevelltem(int index):返回序号为 index 的顶层节点。on_actScanltems_triggered() 函数的for 循环访问所有顶层节点,获取一个 顶层节点item 之后,调用changeltemCaption(item)改变这个节点及其所有子节点的标题。cha ngeltemCa ptio n(QTreeWidgeltem *item)是一个嵌套调用函数,即在这个函数。

38、里还会调用它自己。它的前两行更改传递来的节点item 的标题,即在标题前加星号。后面的代码根据item-childCount()是否大于0,判断这个节点是否有子节点,如果有子节点,则在后面的for循环里,逐一获取,并作为参数调用changeltemCaption()函数。QTreeWidget组件的顶层节点没有父节点,要访问所有顶层节点,用到两个函数。1.2.in tto pLevelltemCou nt():返回顶层节点个数。QTreeWidgetltem* topLevelltem(int index):返回序号为 index 的顶层节点。on_actScanltems_triggered。

39、()函数的for 循环访问所有顶层节点,获取一个顶层节点item之后,调用changeltemCaption(item) 改变这个节点及其 所有子节点的标题。cha ngeltemCa ptio n(QTreeWidgetltem *item)是一个嵌套调用函数,即在这个函数里还会调用它自己。它的前两行更改传递来的节点item 的标题,即在标题前加星号。后面的代码根据item-childCount()是否大于0,判断这个节点是否有子节点,如果有子节点,则在后面的for循环里,逐一获取,并作为参数调用changeltemCaption()函数。QLabel和QP ixma p显示图片显示节点关联。

40、的图片在目录树上单击一个节点后,如果其类型为图片节点(itlmageltem ),就会调用dis playimage (QTreeWidgetltem *item)函数显示节点的图片,当前节点作为函数的传递参数。dis playlmageO函数的代码如下:void MainWin dow:dis playlmage(QTreeWidgetltem *item)/显示图片,节点item存储的图片文件名QString filename=item-data(colltem,Qt:UserRole).toString();/ 获取节点 data里存的文件名 LabFileName-setText(fi。

41、le name);curPixmap.load(filename); / 从文件载入图片on_actZoomFitH_triggered(); / 自动适应高度显示QTreeWidgetltem:data()返回节点存储的数据,也就是用setDataO 设置的数据。前面在添加图片节点时,将文件名的带路径全名存储为节点的数据, 这里的第一行语句就可以获得节点存储的图片文件全名。curPixmap是在MainWindow中定义的一个 QPixmap类型的变量,用于操作图片。QPixmap:load(QString &fileName)直接将一个图片文件载入。最后调用函数on_actZoomFitH。

42、_triggered()显不图片,这是actZoomFitH的槽函数,以适应高度的形式显示图片。图片缩放与显示有几个 Actio n 实现图片的缩放显示,包括适合宽度、适合高度、放大、 缩小、实际大小,部分槽函数代码如下:void MainWin dow:o n_actZoomFitW_triggered() /适应宽度显示int w=ui-scrollArea-width()-20;/ 得到 scrollArea 的高度 int realw=curPixmap.width();/ 原始图片的实际宽度 p ixRatio=float(w)/realw;/当前显示比例,必须转换为浮点数QPi x。

43、ma p pi x=curPixma p.scaledToWidth(w-30); ui-Lab Picture-set Pi xma p(pi x);void Mai nWin dow:o n_actZoomln_triggered()/放大显示pixRatio=pixRatio*1.2;/在当前比例基础上乘以0.8int w=p ixRatio*curPixma p.width();/ 显示宽度 int h=pixRatio*curPixma p.height();/ 显示高度QPixmap pix=curPixmap.scaled(w,h);/图片缩放到指定高度和宽度,保持长宽比例 ui。

44、-Lab Picture-set Pi xma p(pi x);void MainWin dow:o n_actZoomRealSize_triggered() /实际大小显示p ixRatio=1; 恢复显示比例为 1 ui-Lab Picture-set Pi xma p( curPixma p);QP ixmap存储图片数据,可以缩放图片,有以下几个函数:? QPi xma p scaledToHeight(i nt height) 缩放到一个高度height。? QP ixma p scaledToWidth( int width) 放到一个宽度 width。? QP ixma p s。

45、caled(i nt width, i nt height) 片缩放到宽度width和高度height:返回一个缩放后的图片的副本,图片:返回一个缩放后的图片的副本,图片缩:返回一个缩放后的图片的副本,图 ,缺省为不保持比例。变量curPixmap保存了图片的原始副本,要缩放只需调用curPixmap的相应函数,返回缩放后的图片副本。上显不图片,使用了 QLabel的在界面上的一个标签Lab Pictureset Pi xma p(const QPi xma p &)函数。QDockWidget 的操作DockWidget组件可以被拖动,在主窗口的左、 工具栏上“窗体浮动”和“窗口可见”两个按。

46、程序运行时,主窗口上的右两侧停靠,或在桌面上浮动。 钮可以用代码控制停靠区是否浮动、是否可见,其代码如下:void Mai nWin dow:o n_actDockVisible_toggled(bool arg1)停靠区的可见性ui-dockWidget-setVisible(arg1);void Mai nWin dow:o n_actDockFloat_tnggered(bool checked)/停靠区浮动性ui-dockWidget-setFloat in g(checked);单击DockWidget组件标题栏的关闭按钮时,会隐藏停靠区并发射信号 visibilityChanged。

47、(bool); 当拖动DockWidget组件,使其浮动或停靠时,会发 射信号topLevelChanged(bool)。为这两个信号编写槽函数,可更新两个 Actio ns的状态:void MainWin dow:o n_dockWidget_visibilityCha nged(bool visible)/停靠区可见性变化-ui-actDockVisible-setChecked(visible);void MainWin dow:o n_dockWidget_t op LevelCha nged(bool top Level)/停靠区浮动性变化-ui-actDockFloat-setChecked(t op Level。

linux下的qt没有qpixma类吗,Qt基础教程之QTreeWidget和QDockWidget用法详解相关推荐

  1. Linux下的awk用法详解

    Linux下的awk用法详解 一.awk介绍 二.awk的语法 三.awk常见用法 四.awk其他用法 五.awk语言特性 一.awk介绍 1.AWK 是一种处理文本文件的语言,是一个强大的文本分析工 ...

  2. Linux入门基础教程之Linux下软件安装

    Linux入门基础教程之Linux下软件安装 一.在线安装: sudo apt-get install 即可安装 如果在安装完后无法用Tab键补全命令,可以执行: source ~/.zshrc AP ...

  3. linux为什么用tar压缩,linux下tar压缩和解压命令用法详解

    linux下tar压缩和解压命令用法详解 2017-03-25 14:06 分享人:老牛 将/usr/local/test目录下所有文件仅打包,不压缩到 /usr/local/auto_bak/目下 ...

  4. Linux下find命令用法详解

    Linux下find命令用法详解 学神VIP烟火 学神IT教育:XueGod-IT 最负责任的线上直播教育平台 本文作者为VIP学员 烟火 第一部分:根据文件名查找 1.在当前目录查找名称为test的 ...

  5. linux下的vim使用教程!从零基础到入门!

    linux下的vim使用教程!从零基础到入门! 文章目录 linux下的vim使用教程!从零基础到入门! vim的介绍! vim的模式介绍! vim三种模式的关系! vim的基本操作! vim的退出! ...

  6. linux下crontab命令的用法,linux 定时任务crontab用法详解

    linux 定时任务crontab用法详解 linux中crontab命令用于设置周期性被执行的指令,该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读 ...

  7. windows 7编辑启动菜单 bcdedit linux,bcdedit用法详解 windows7/vista启动修改

    bcdedit用法详解 windows7/vista启动修改 (2010-09-11 19:27:28) 标签: 杂谈 bcdedit用法详解 在Vista/2008下,我们通过msconfig的&q ...

  8. Qt QLineEdit单行输入框用法详解

    Qt QLineEdit单行输入框用法详解 QLineEdit 是 Qt 提供的一个控件类,它直接继承自 QWdiget 类,专门用来创建单行输入框,如下图所示: 图 1 单行文本输入框 实际开发中, ...

  9. Qt QPushButton按钮用法详解

    Qt QPushButton按钮用法详解 按钮是 GUI 开发中最常用到的一种控件,作为一款著名的 GUI 开发框架,Qt 提供了很多种按钮,比如 QPushButton(普通按钮).QRadioBu ...

  10. Qt QListWidget列表框用法详解

    Qt QListWidget列表框用法详解 很多应用程序中需要以列表的形式向用户展示数据(资源),比如 Windows 操作系统会以列表的方式展示很多张桌面背景图(如图 1a) 所示),再比如很多音乐 ...

最新文章

  1. linux教程 sed命令的用法,Linux文本处理三剑客——sed命令使用教程
  2. keepalived之 Keepalived 原理(定义、VRRP 协议、VRRP 工作机制)
  3. python展示_python展示ppt
  4. windows上的几个常用端口号
  5. socket connec连接超时处理
  6. 顶峰Android手机视频转换器,顶峰3GP手机视频转换器
  7. 关联规则算法c语言样例及分析_推荐系统总结系列-关联规则算法(四)
  8. 飞鸽传书:webbrowser 本生是一个控件
  9. 程序员都很老实?你错了,其实程序员真实的样子是这样的
  10. P1099 树网的核
  11. 西密歇根大学计算机科学,西密歇根大学
  12. 3位黑洞发现者获2020年诺贝尔物理学奖
  13. LeetCode 72 编辑距离
  14. ESP32的智能药箱-WEB定时-舵机和语音控制-OLED实时时间显示
  15. 蜀山剑侠传-----第二十回
  16. 【猿说理财】《一》理财需要理由吗
  17. 毕业设计周报(第六周)
  18. JS 区分+0和-0
  19. 淘特 Flutter 流畅度优化实践
  20. 9行Python代码实现自动抠图 别再自己抠图啦

热门文章

  1. app store无法下载、安装软件,一直在转圈的一个解决方法
  2. php数组倒插,phpComasy v0.7.9
  3. 鸡蛋,必须放在合适的篮子里
  4. rabbitmq 连接报错 An unexpected connection driver error occured
  5. Android常用的开源库收集(持续更新中)
  6. SpringAop_2通知(新手)和无法找到元素 'aop:aspectj-autoproxy' 的声明
  7. steam在连接至steam服务器时发生错误解决办法
  8. Python OS模块详解(完善版本)
  9. php base64互转pdf 将base64解析成pdf
  10. krait和kryo_高通kryo架构还是arm吗