qt中widget与dialog如何选择

qt中widget与dialog如何选择,第1张

QDialog继承自QWidget。\x0d\那么,看一下QDialog都新增了哪些功能。如果你需要这些新增的功能,那么考虑使用QDialog。\x0d\Qt文档中有这样一段介绍文字:\x0d\A dialog window is a top-level window mostly used for short-term tasks and brief communications with the user QDialogs may be modal or modeless QDialogs can provide a return value, and they can have default buttons \x0d\从这段话可以看出,QDialog通常作为一个顶层窗口出现,允许用户进行一些选择,并返回用户选择的结果(比如:在一个配置对话框里,用户 *** 作完后是按下了“确定”、“应用”或“取消”)。然后应用程序就可以根据用户刚才的选择决定下一步做什么(比如:如果用户刚才按下了“确定”,那么就保存用户在配置对话框中进行的更改等)。\x0d\\x0d\由于QDialog通常作为顶层窗口,所以在使用诸如QStackedLayout这样的布局类时,一般上使用QWidget这样“原始”的窗体,然后把它添加到Stacked Layout中作为其中的一个Page。\x0d\\x0d\QWidget中有个方法叫SetLayout,QDialog继承了它。

通过

ui->printAgeingTableView->setIndexWidget(standardItemModel->index(i, 5), interval);

添加控件后,获取内容。

获取内容方式:将控件还原,然后再去拿取,不能当做QStandardItem进行 *** 作,否则无法拿到内容。

((QLabel )ui->printAgeingTableView->indexWidget(model->index(var,1)))->text();

这里原本控件是QLabel,还原后再拿取。

label的父类是ui,获取Label和在哪个Tab没关系。

如果是界面里拉的,那界面上对象名叫什么,代码里就ui->labelXX->text();

当然你说的可能是另一种方法(仅提供思路):

获取Tab页所在的Widget:QWidget pWidget= ui->tab_2;

将widget上某一控件转成Label:QLabel pLabel = (QLabel)pWidget->childrenat(1);

取值:QString ValueStr= pLable->text();

这种方法因为是转换过去的,只适用于固定布局,容易崩溃,请谨慎使用

如果说你的按钮没有显示,最有可能的原因是你没有将按钮的父窗口设置成你自定义的Widget

比如说你自定义了一个 Widget,它继承自 QWidget,示意如下:

//widgeth

#ifndef WIDGET_H

#define WIDGET_H

#include <QtGui/QWidget>

#include <QPushButton>

class Widget : public QWidget

{

Q_OBJECT

public:

Widget(QWidget parent = 0);

~Widget();

private:

QPushButton buttonA;

QPushButton buttonB;

QPushButton pButton;

};

#endif // WIDGET_H

在上面的头文件中定义了两个button以及一个指针,下面是源文件

//widgetcpp

#include "widgeth"

Widget::Widget(QWidget parent)

: QWidget(parent)

{

buttonAsetText("buttonA");

buttonBsetText("buttonB");

//在构造pButton时指定Widget为pButton的父窗口

//注意:由于pButton继承自QObject并且你为他指定了父窗口,

//父类中的QObjetc会对pButton的内存进行管理,并在合适的时候释放内存,

//所以你不需要在Widget的析构函数中去进行delete pButton的 *** 作,

//建议使用new这种方式来构造子控件

pButton = new QPushButton(this);

pButton->setText("buttonC");

//指定Widget为buttonA和buttonB的父窗口

//如果你不指定他们的父窗口,那么这些控件将不可见

//你可以注释下两行中的某条语句,来测试控件是否可见

//目前两个控件都是可见的

buttonAsetParent(this);

buttonBsetParent(this);

//移动控件到相应的坐标点

buttonAmove(100,100);

buttonBmove(100,150);

pButton->move(100,200);

}

Widget::~Widget()

{

}

//maincpp

#include <QtGui/QApplication>

#include "widgeth"

int main(int argc, char argv[])

{

QApplication a(argc, argv);

Widget w;

wshow();

return aexec();

}

这就是整个示例程序了,总的来说,要想窗体中的控件可见,你必须将该窗体设置成这些控件的父窗口。

在表格外部添加布局。

1、直接最大化显示 // 主窗体界面 MainWindow w; wshowMaximized();//。

2、获取屏幕尺寸,然后自己配置 MainWindow w; wresize(adesktop()->availableGeometry()size());。

通过columnCount 和 rowCount 获取到当前tablewidget的行数和列数,通过两个for循环,用

QTableWidgetItem item(int row, int column) const 成员函数遍历所有的单元格,再用获取到的QTableWidgetItem对象的virtual QVariant data(int role) const 成员函数取得单元格内数据,再调用QVariant的toString函数取得单元格内数据的字符串格式,然后你就可以将数据写入文件了。

以上就是关于qt中widget与dialog如何选择全部的内容,包括:qt中widget与dialog如何选择、如何获取qt动态生成控件的数据、QT中的tabwidget有几个tab页,每个tab页中有label控件,怎么在函数中获取某个tab页中的label里的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9719285.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存