返回介绍

QTabDialog类

发布于 2019-10-04 15:03:13 字数 13980 浏览 884 评论 0 收藏 0

QTabDialog类提供了一个被标签的窗口部件的栈。 详情请见……

#include <qtabdialog.h>

继承了QDialog。

所有成员函数的列表。

公有成员

  • QTabDialog ( QWidget*parent = 0, constchar*name = 0, boolmodal = FALSE, WFlagsf = 0 )
  • ~QTabDialog ()
  • virtual void setFont ( constQFont&font )
  • void addTab ( QWidget*child, constQString&label )
  • void addTab ( QWidget*child, constQIconSet&iconset, constQString&label )
  • void addTab ( QWidget*child, QTab*tab )
  • void insertTab ( QWidget*child, constQString&label, intindex = -1 )
  • void insertTab ( QWidget*child, constQIconSet&iconset, constQString&label, intindex = -1 )
  • void insertTab ( QWidget*child, QTab*tab, intindex = -1 )
  • void changeTab ( QWidget*w, constQString&label )
  • void changeTab ( QWidget*w, constQIconSet&iconset, constQString&label )
  • bool isTabEnabled ( QWidget*w ) const
  • void setTabEnabled ( QWidget*w, boolenable )
  • bool isTabEnabled ( constchar*name ) const (废弃)
  • void setTabEnabled ( constchar*name, boolenable ) (废弃)
  • void showPage ( QWidget*w )
  • void removePage ( QWidget*w )
  • QString tabLabel ( QWidget*w )
  • QWidget * currentPage () const
  • void setDefaultButton ( constQString&text )
  • void setDefaultButton ()
  • bool hasDefaultButton () const
  • void setHelpButton ( constQString&text )
  • void setHelpButton ()
  • bool hasHelpButton () const
  • void setCancelButton ( constQString&text )
  • void setCancelButton ()
  • bool hasCancelButton () const
  • void setApplyButton ( constQString&text )
  • void setApplyButton ()
  • bool hasApplyButton () const
  • void setOkButton ( constQString&text )
  • void setOkButton ()
  • bool hasOkButton () const

信号

  • void aboutToShow ()
  • void applyButtonPressed ()
  • void cancelButtonPressed ()
  • void defaultButtonPressed ()
  • void helpButtonPressed ()
  • void currentChanged ( QWidget * )
  • void selected ( const QString & ) (废弃)

保护成员

  • void setTabBar ( QTabBar*tb )
  • QTabBar * tabBar () const

详细描述

QTabDialog类提供了一个被标签的窗口部件的栈。

被标签的对话框就是一个在里面有几个“标签页”是可用的对话框。通过点击标签页的标签或者通过按下被指出的Alt+letter键组合,用户可以选择他们想使用的标签页。

QTabDialog提供了一个由标签组成的单一一排在上面组成的标签栏,每一个标签都有一个关联的窗口部件包含着那个标签的标签页。另外,QTabDialog提供了一个OK按钮和下述几个可选按钮:Apply、Cancel、Defaults和Help。

使用QTabDialog的常用方法是在构造函数中像下面这样做:

  1. 创建一个QTabDialog。
  2. 为标签对话框中的每一个页面创建一个QWidget,把它们的自对象插入进去,为它们设置几何形状管理,并且使用addTab()(或者insertTab())来为它设置一个标签和键盘快捷键。
  3. 使用setOkButton()、setApplyButton()、setDefaultsButton()、setCancelButton()和setHelpButton()为标签对话框设置按钮。
  4. 连接信号和槽。

如果你没有调用addTab(),你已经创建的页面将不是可见的。不要把你提供给QWidget构造函数的对象名称和你提供给addTab()的标签弄混,addTab()中的是出现在窗口部件的标签伤得用户可视名称并且可以有一个快捷键,而窗口部件的名称主要用语调试。

几乎所有应用程序不得不把applyButtonPressed()信号连接到什么上,当OK或者Apply被点击时,applyButtonPressed()被发射,并且你的槽必须复制对话框的状态到应用程序中。

这里有其它几个可能有用的信号:

  • cancelButtonPressed() is emitted when the user clicks Cancel. 当用户点击Cancel时,cancelButtonPressed()被发射。
  • 当用户点击Defaults时,defaultButtonPressed()被发射,它被连接的槽应该重置这个对话框为应用程序的默认值。
  • 当用户点击Help时,helpButtonPressed()被发射。
  • 在show()开始时,aboutToShow()被发射,如果在标签对话框的创建和show()被调用的时候之间有应用程序的状态发生改变的机会,你必须把这个信号连接到重置对话框状态的槽上。
  • 当用户选择一个页时,currentChanged()被发射。

每个标签在任何给定的时间都可以是生效的或者失效的(请参考setTabEnabled())。如果一个标签生效,标签文本就会被绘制为黑色并且用户可以选择这个标签。如果一个标签失效,标签文本就会被一种不同的方式绘制并且用户也就不可以选择它了。注意,尽管一个标签是失效的,这页仍是可见的,例如,如果所有的标签都变为失效了。

你可以使用changeTab()来改变标签的文本和图标集。标签页可以用removePage()移除并且用showPage()显示。当前页由currentPage()给定。

QTabDialog不支持在侧面或者底下的标签,你也不能设置或者重新找回可见的页。如果你需要比QTabDialog提供的更多的功能,可以考虑考虑使用可以放置QTabWidget的QTabBar的QDialog。

QTabDialog的绝大部分功能是由QTabWidget提供的。

也可以参考QDialog和对话框类。


成员函数文档

QTabDialog::QTabDialog ( QWidget*parent = 0, constchar*name = 0, boolmodal = FALSE, WFlagsf = 0 )

构造一个只有OK按钮的QTabDialog。parentnamemodal和窗口部件标记f参数被传递给QDialog的构造函数。

QTabDialog::~QTabDialog ()

销毁这个标签对话框。

void QTabDialog::aboutToShow () [信号]

当设置对话框的内容的状态的时候,这个信号被show()发射。对话框应该反映当它出现的时候应用程序的当前状态,如果在你调用QTabDialog::QTabDialog()和QTabDialog::show()之间,有改变应用程序的状态的可能性的话,你应该在一个槽中设置对话框的状态并且把它和这个信号连接起来。

这主要适用于保持隐藏的QTabDialog对象,而不是那些被创建、被显示然后被删除的。

也可以参考applyButtonPressed()、show()和cancelButtonPressed()。

void QTabDialog::addTab ( QWidget*child, constQString&label )

把另外一个标签和页添加到这个标签视中。

新的页是child,标签文本是label。注意窗口部件名称(你提供给窗口部件构造函数和给setTabEnabled()的,例如)和标签文本的不同。这个窗口部件名称用于应用程序内部并且是不变的,而标签文本是被显示在屏幕上并且可以根据语言和其它因素变化的。

如果标签的label包含“&”,那么在“&”后面的字符就会被用作这个标签的快捷键,例如,如果标签为“Bro&wse”,那么Alt+W就变成了快捷键,它会使焦点移到这个标签的。

如果在show()之后调用addTab(),屏幕将会闪烁并且用户也许会困惑。

也可以参考insertTab()。

void QTabDialog::addTab ( QWidget*child, constQIconSet&iconset, constQString&label )

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

这个版本的函数显示child标签上的iconsetlabel

void QTabDialog::addTab ( QWidget*child, QTab*tab )

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

这是一个添加标签的底层方法,和其它addTab()方法相似。如果你正在使用setTabBar()来设置一个QTabBar继承类并且为QTab的子类重载QTabBar::paint()函数,这个方法就很有用了。

child是要被放置到新标签页的窗口部件。tab就是要显示在标签页上的标签——通常它显示一个标签文本或者一个图标来标识标签页。

void QTabDialog::applyButtonPressed () [信号]

当Apply或者OK按钮之一被点击时,这个信号被发射。

它应该被连接到一个(或几个)根据对话框状态改变应用程序状态的槽。

也可以参考cancelButtonPressed()、defaultButtonPressed()和setApplyButton()。

void QTabDialog::cancelButtonPressed () [信号]

当Cancel按钮被点击时,这个信号被发射。它自动被连接到将会隐藏对话框的QDialog::reject()。

Cancel按钮一点也不会改变应用程序的状态,所以你应该不需要把它和任何槽连接起来。

也可以参考applyButtonPressed()、defaultButtonPressed()和setCancelButton()。

void QTabDialog::changeTab ( QWidget*w, constQIconSet&iconset, constQString&label )

改变标签页w的图标集和标签文本分别为iconsetlabel

void QTabDialog::changeTab ( QWidget*w, constQString&label )

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

为标签页w定义新的label

void QTabDialog::currentChanged ( QWidget* ) [信号]

只要当前页发生改变,这个信号就被发射。

也可以参考currentPage()、showPage()和tabLabel()。

QWidget* QTabDialog::currentPage () const

返回当前正在被标签对话框显示的页的指针。标签对话框会尽它最大努力来保证这个值不会为0(但是如果你也足够努力的话,它可能就是了)。

void QTabDialog::defaultButtonPressed () [信号]

当Defaults按钮被按下时,这个信号被发射。它应该重置对话框(但不是应用程序)为“出厂默认设置”。

直到用户点击Apply或者OK之前,应用程序的状态不应改变。

也可以参考applyButtonPressed()、cancelButtonPressed()和setDefaultButton()。

bool QTabDialog::hasApplyButton () const

如果标签对话框已经有了一个Apply按钮,返回真,否则返回假。

也可以参考setApplyButton()、applyButtonPressed()、hasCancelButton()和hasDefaultButton()。

bool QTabDialog::hasCancelButton () const

如果标签对话框已经有了一个Cancel按钮,返回真,否则返回假。

也可以参考setCancelButton()、cancelButtonPressed()、hasApplyButton()和hasDefaultButton()。

bool QTabDialog::hasDefaultButton () const

如果标签对话框已经有了一个Defaults按钮,返回真,否则返回假。

也可以参考setDefaultButton()、defaultButtonPressed()、hasApplyButton()和hasCancelButton()。

bool QTabDialog::hasHelpButton () const

如果标签对话框已经有了一个Help按钮,返回真,否则返回假。

也可以参考setHelpButton()、helpButtonPressed()、hasApplyButton()和hasCancelButton()。

bool QTabDialog::hasOkButton () const

如果标签对话框已经有了一个OK按钮,返回真,否则返回假。

也可以参考setOkButton()、hasApplyButton()、hasCancelButton()和hasDefaultButton()。

void QTabDialog::helpButtonPressed () [信号]

当Help按钮被按下时,这个信号被发射。它可以用来呈现关于如何使用这个对话框的信息。

也可以参考applyButtonPressed()、cancelButtonPressed()和setHelpButton()。

void QTabDialog::insertTab ( QWidget*child, constQString&label, intindex = -1 )

在标签视中插入另一个标签和页。

新的页是child,标签文本是label。注意窗口部件名称(你提供给窗口部件构造函数和给setTabEnabled()的,例如)和标签文本的不同。这个窗口部件名称用于应用程序内部并且是不变的,而标签文本是被显示在屏幕上并且可以根据语言和其它因素变化的。

如果标签的label包含“&”,那么在“&”后面的字符就会被用作这个标签的快捷键,例如,如果标签为“Bro&wse”,那么Alt+W就变成了快捷键,它会使焦点移到这个标签的。

如果index没有被指定,那么这个标签只是被简单添加。否则它就会被插入在特定位置。

如果在show()之后调用insertTab(),屏幕将会闪烁并且用户也许会困惑。

也可以参考addTab()。

void QTabDialog::insertTab ( QWidget*child, constQIconSet&iconset, constQString&label, intindex = -1 )

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

这个版本的函数显示child标签上的iconsetlabel

void QTabDialog::insertTab ( QWidget*child, QTab*tab, intindex = -1 )

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

这是一个添加标签的底层方法,和其它insertTab()方法相似。如果你正在使用setTabBar()来设置一个QTabBar继承类并且为QTab的子类重载QTabBar::paint()函数,这个方法就很有用了。

child是要被放置到新标签页的窗口部件。tab就是要显示在标签页上的标签——通常它显示一个标签文本或者一个图标来标识标签页。index是这个标签页应该被插入的位置。

bool QTabDialog::isTabEnabled ( QWidget*w ) const

如果页w是生效的,返回真,否则返回假。

也可以参考setTabEnabled()和QWidget::enabled。

bool QTabDialog::isTabEnabled ( constchar*name ) const

这个函数是废弃的。它的提供只是为了保证旧代码能够工作。我们强烈建议在新代码中不要使用它。

如果对象名称为name的页是生效的,返回真,否则返回假。

如果name为0或者没有这样一个名称的页,isTabEnabled()返回假。

也可以参考setTabEnabled()和QWidget::enabled。

void QTabDialog::removePage ( QWidget*w )

从窗口部件栈中移除页w。但不删除w

也可以参考showPage()、QTabWidget::removePage()和QWidgetStack::removeWidget()。

void QTabDialog::selected ( constQString& ) [信号]

这个函数是废弃的。它的提供只是为了保证旧代码能够工作。我们强烈建议在新代码中不要使用它。

只要一个标签被选择(升起),这个信号就被发射,包括在第一个show()期间。

也可以参考raise()。

void QTabDialog::setApplyButton ( constQString&text )

把Apply按钮添加到对话框。按钮文本被设置为text

Apply按钮应该把对话框中的当前设置提交给应用程序,并且保持对话框是可视的。

当Apply被点击时,applyButtonPressed()信号被发射。

如果text为零字符串,就没有按钮被显示。

也可以参考setCancelButton()、setDefaultButton()和applyButtonPressed()。

void QTabDialog::setApplyButton ()

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

把Apply按钮添加到对话框。按钮文本被设置为本地化的“Apply”。

void QTabDialog::setCancelButton ( constQString&text )

把Cancel按钮添加到对话框。按钮文本被设置为text

Cancel按钮也应该把标签视被弹出之前的设置返回给应用程序,或者如果用户已经点击了Apply,就把最近一次Apply的状态立即返回。

当Cancel被点击时,cancelButtonPressed()信号被发射。同时对话框被关闭。

如果text为零字符串,就没有按钮被显示。

也可以参考setApplyButton()、setDefaultButton()和cancelButtonPressed()。

void QTabDialog::setCancelButton ()

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

把Cancel按钮添加到对话框。按钮文本被设置为本地化的“Cancel”。

void QTabDialog::setDefaultButton ( constQString&text )

把Defaults按钮添加到对话框。按钮文本被设置为text

Defaults按钮应该把对话框(但不是应用程序)设置回应用程序的默认值。

当Defaults被点击时,defaultButtonPressed()信号被发射。

如果text为零字符串,就没有按钮被显示。

也可以参考setApplyButton()、setCancelButton()和defaultButtonPressed()。

void QTabDialog::setDefaultButton ()

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

把Defaults按钮添加到对话框。按钮文本被设置为本地化的“Defaults”。

void QTabDialog::setFont ( constQFont&font ) [虚]

设置标签的字体为font

如果窗口部件是可视的,显示会立即更新字体。根据旧字体和新字体的大小,也许会导致一些几何形状的变化。

从QWidget中重新实现。

void QTabDialog::setHelpButton ( constQString&text )

把Help按钮添加到对话框。按钮文本被设置为text

当Help被点击时,helpButtonPressed()信号被发射。

如果text为零字符串,就没有按钮被显示。

也可以参考setApplyButton()、setCancelButton()和helpButtonPressed()。

void QTabDialog::setHelpButton ()

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

把Help按钮添加到对话框。按钮文本被设置为本地化的“Help”。

void QTabDialog::setOkButton ( constQString&text )

把OK按钮添加到对话框。按钮文本被设置为text。 当OK按钮被点击时,applyButtonPressed()信号被发射,并且把对话框中的当前设置提交给应用程序。然后对话框关闭。

如果text为零字符串,就没有按钮被显示。

也可以参考setCancelButton()、setDefaultButton()和applyButtonPressed()。

void QTabDialog::setOkButton ()

这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

把OK按钮添加到对话框。按钮文本被设置为本地化的“OK”。

void QTabDialog::setTabBar ( QTabBar*tb ) [保护]

替换对话框上面的QTabBar为给定的标签栏tb。注意这必须在任何标签被添加之前调用,否则行为是不确定的。

也可以参考tabBar()。

void QTabDialog::setTabEnabled ( QWidget*w, boolenable )

如果enable为真,页w就生效,否则w就失效。页的标签被适当地重新绘制。

QTabWidget在内部使用QWidget::setEnabled(),而不是保留一个不同的标记。

注意失效的标签和标签页可以是可视的。如果这个页已经可视,QTabWidget不会隐藏它,如果所有的页都是失效地,QTabWidget将会显示其中一个。

也可以参考isTabEnabled()和QWidget::enabled。

void QTabDialog::setTabEnabled ( constchar*name, boolenable )

这个函数是废弃的。它的提供只是为了保证旧代码能够工作。我们强烈建议在新代码中不要使用它。

找到对象名称为name的页,根据enable的值来使它生效/失效并且适当地重新绘制页的标签。

QTabWidget在内部使用QWidget::setEnabled(),而不是保留一个不同的标记。

注意失效的标签和标签页可以是可视的。如果这个页已经可视,QTabWidget不会隐藏它,如果所有的页都是失效地,QTabWidget将会显示其中一个。

因为标签文本也许在多语言应用程序中是变化的,所以使用对象名称(而不是标签文本)。

也可以参考isTabEnabled()和QWidget::enabled。

void QTabDialog::showPage ( QWidget*w )

确保窗口部件w被显示。这主要用于快捷键。

警告: 如果没有仔细使用,这个函数很容易让用户惊奇或者混乱。

也可以参考QTabBar::currentTab。

QTabBar* QTabDialog::tabBar () const [保护]

返回当前设置的QTabBar。

也可以参考setTabBar()。

QString QTabDialog::tabLabel ( QWidget*w )

返回w页的标签文本。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文