gpt4 book ai didi

c++ - 如何在Qdialogbox的linedits中填充值?

转载 作者:行者123 更新时间:2023-12-02 09:58:22 25 4
gpt4 key购买 nike

在我的主窗口中,我有一个名为QlistWidgetemployee_list,此QListWidget中的项目如下:

<FIRM-1> name="Anna Ken" age="25" job="QtMaster" ,
<FIRM-2> name="Sir Ron" age="50" job="QtSlave"
因此,当我单击 employee_list QlistWidget中的项目时,会显示一个带有3个字段 dialogboxname,age,job,如下所示

但是,当此对话框出现时,我希望填充 name,age,job字段,就像这样,我如何实现呢?

到目前为止,我已经尝试过了。
void MainWindow::on_employee_list_itemDoubleClicked(QListWidgetItem* item)
{
QString test = item->text(); // getting the item text
std::string test_s = test.toStdString(); //converting it to string from Qstring
string name_part = ""; //creating a variable in which name will be stored

int name_pos = test_s.find("name=\"");
for (int i = name_pos + 6; i < test_s.length();i++)
{
if (test_s[i] != '\"')
name_part += test_s[i];
else
break; //extracting name in the item's text, after this the name_part variable value is Sir ron. // similar code for extarcting age and job.

if (test_s.find("<FIRM-1>") != std::string::npos) //if item contains text <FIRM-1> then show this dialogue
{
GrpComd grpComd; //creating instance of dialog
grpComd.exec(); //showing it

grpComd.name_lineedit->settext(name_part); // i tried this to populate name in name_linedit but getting error , access violation reading location
}
}

最佳答案

您必须填写,然后显示setText(),然后显示show()exec():

if (test_s.find("<FIRM-1>") != std::string::npos)  
{
GrpComd grpComd;
grpComd.setName(clickedName);
grpComd.setJob(clickedJob);
grpComd.setAge(clickedAge);
grpComd.exec();
}
甚至更好(如果尚未定义),请使用这些字段创建一个构造函数。
GrpComd::GrpComd(const QString& name,const QString& job, uint age);

关于c++ - 如何在Qdialogbox的linedits中填充值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64056783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com