从主窗口的菜单向 qt 选项卡小部件发送文件名
Sending a file name to a qt tabWidget from main window's menu
我正在使用qt构建一个具有多个选项卡的文件编辑器,每个选项卡对应于一个文件。在主窗口中.cpp我有以下功能:
void MainWindow::on_actionOpen_triggered()
{
QString fileName = QFileDialog::getOpenFileName(this,"Open File","/home",tr("*.ext"));
}
我需要将文件名发送到我的选项卡小部件的新选项卡。我知道 qt 中有用于类的信号和插槽,但我一生都无法弄清楚如何将 QString 发送到特定选项卡。有没有办法将文件名发送到选项卡的创建事件,或者可能使用选项卡的索引向其发送信号?
我对qt很陌生,但我相当确定这应该是一个简单的过程。我只是想不通。
提前感谢!
编辑:完全修改的代码,两者都作为主窗口的成员:
void MainWindow::on_actionOpen_triggered()
{
if (fileName!=NULL)
{
int curtab=ui->fileTabWidget->addTab(new my_editor,tr("editor"));
ui->fileTabWidget->setCurrentIndex(curtab);
}
}
因此,按照@vizhanyolajos说明进行操作;如果我将文件名传递给addTab的末尾,我需要在哪里添加其余代码来接收它?
我假设在我的自定义编辑器类中。
例如,您的代码可能如下所示:
void MainWindow::on_actionOpen_triggered()
{
QString fileName = QFileDialog::getOpenFileName(this,"Open File","/home",tr("*.ext"));
createNewPage( index , name , fileName );
}
createNewPage( int index , QString name , QString fileName )
{
// your page creation code goes here
// your fileOpen and fill textBox code goes here where you can use the fileName for it
}
我建议您将 pageIndex + 文件名存储在容器中,以便您可以轻松查询哪个页面对应于哪个文件。
void MainWindow::on_actionOpen_triggered()
{
QString fileName = QFileDialog::getOpenFileName(this,"Open File","/home",tr("*.ext"));
if (fileName!=NULL)
{
ui->fileTabWidget->addTab(new my_editor( fileName ),tr("editor"));
ui->fileTabWidget->setCurrentIndex(curtab);
}
}
只需将fileName
传递给my_editor
小部件的构造函数即可。
在那里,您可以调用函数以用fileName
填充编辑器。
没有选项卡创建事件。您需要执行以下步骤,我认为您不需要任何信号/插槽机制。我认为您在问题中包含的插槽是QMainWindow的成员功能。我认为你的QTabWidget也是你的QMainWindow的一部分,所以你只需要这样做:
void onActionTriggered()
{
const QString filename = // ...
ui.TabWidget->addTab( /* Your custom class derived from QWidget or a Qt widget */, filename );
}
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 最小硬币更换问题(自上而下方法)
- Qt VTK交互风格的信号到小部件
- 从命令行c++发送文本文件名
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 使用递归的数组的最小值.这是怎么回事
- 为什么在浮点中从大到小会引入更多的误差
- 找到两对数字,使它们的乘积的绝对差最小化
- 为什么文件名被设置为一个点,而不是在读取矢量中的文件名时
- 如何使用boost::具有嵌套结构和最小代码更改的序列化
- 最大和最小 1 C++函数
- 如何创建一个函数来计算并返回平均值、最大值和最小值
- 我可以做些什么来消除或最小化这种将提供相同功能和行为的代码重复
- 如何将部分流作为参数传递
- 如何在QT中的自定义视频小工具t上绘制矩形
- C++ - 截断变量文件名中双精度的小数位
- 从主窗口的菜单向 qt 选项卡小部件发送文件名
- C++ 创建小部件数组