qt 多窗体跳转问题

qt 多窗体跳转问题,第1张

在一个窗体中打开另一个窗体

1通过designer创建窗体form1

2通过designer创建窗体form2

3在窗体form1的源代码

#include "Form1Dialogh"

#include "Form2Dialogh"

Form1Dialog::Form1Dialog(QWidget parent): QDialog(parent)

{

setupUi(this);

QObject::connect(pushButton,SIGNAL(clicked()),this,SLOT(showForm2()));

}

void MainDialog:: showForm2()

{

Form2Dialog newform(this);

newformexec();

}

窗体回退的时候,只要在form2里关闭自己,就会回到前一个窗体(form1)了(因为前一窗体并没有关闭)

#窗体A

public

partial

class

A

:

Form

{

private

void

Form1_Load(object

sender,

EventArgs

e)

{

B

b

=

new

B();

if

(bShowDialog()

==

DialogResultOK)

{

//对话结果为OK的时候显示隐藏按钮

thisbtnHiddenVisible

=

true;

}

}

}

#窗体B

public

partial

class

B

:

Form

{

private

void

btnOK_Click(object

sender,

EventArgs

e)

{

//对话框结果设置为OK

thisDialogResult

=

DialogResultOK;

thisClose();

}

}

/简单的说,推荐你使用两个主窗体加一个登录窗体的做法,老师说用if判断?貌似很简单,那我就按简单的说了(不考虑数据库连接了,见谅):

在Programcs文件中把最后一行代码中new后面那个单词换成你登录窗体的名字(怕打错就复制)。

然后在登录窗体中加入一个控件:ComboBox,和一个Label控件,将Label的Text属性改为:登录类型,然后双击登录主窗体写入下代码:/

ComboBox1ItemsAdd("管理员VIP"); //这里ComboBox1可以改成你的名字

ComboBox1ItemsAdd("普通用户"); //加入两个选项到ComboBox控件里

ComboBox1SelectedIndex=0; //启动时默认选中第一个选项

ComboBox1DropDownStyle=ComboBoxStyleDropDownList; //只能选不能输入

//然后回到设计界面上,双击那个登录按钮,写如下代码:

if(ComboBox1SelectedTextEquals("管理员VIP"))

{

frmAdmin fa=new frmAdmin(); //这里是显示你管理员功能页面的语句

faShow(); //frmAdmin是你起得窗口名字,可能是form1

}

else

{

frmComon fc=new frmComon(); //同理显示普通功能页面

fcShow();

}

/解释:如果if你选的不是管理员,else就是普通用户,只有这两种情况。因为你会发现,你的ComboBox是只能选不能输入的:)不懂的你继续追问,共同学习哦! /

C#中实现窗体间传值

1、VS

2005的Visual

C#

Windows应用程序和Visual

C#智能设备Pocket

PC

2003设备应用程序。假设我们需要点击主窗体FMMain中的某一个按钮时打开子窗体FMChild并将某一个值传给子窗体FMChild,一般情况下,我们点击按钮显示子窗体FMChild的代码为:

FMChild

fmChild

=

new

FMChild();

fmChildShowDialog();

fmChildDispose();

如果我们需要将主窗体FMMain中的string

strValueA的值传给FMChild,那么我们首先对strValueA进行如下处理:

private

string

strValueA;

public

string

StrValueA

{

get

{

return

strValueA;

}

set

{

strValueA

=

value;

}

}

使其成为主窗体FMMain的一个属性,接着修改显示子窗体的代码为以下两种的其中一种。方法一:

FMChild

fmChild

=

new

FMChild();

fmChildShowDialog(this);

fmChildDispose();

方法二:

FMChild

fmChild

=

new

FMChild();

FMChildOwner

=

this;

fmChildShowDialog();

fmChildDispose();

然后在修改子窗体FMChild中申明一个主窗体FMMain对象,

FMMain

fmMain;

在需要使用主窗体FMMain的string

strValueA的地方加上如下代码:

fmMain

=

(FMMain)thisOwner;

这样,就可以获得主窗体FMMain中strValueA的值了。这时,如果你需要将子窗体FMChild中的string

strValueB传给主窗体FMMain,同样处理string

strValueB。

private

string

strValueB;

public

string

StrValueB

{

get

{

return

strValueB;

}

set

{

strValueB

=

value;

}

}

那么你在关闭子窗体代码fmChildDispose();后,可以写一些代码来保存或者处理FMChild的strValueB,例如:

string

strTmp

=

fmChildStrValueB;

注意,在Visual

C#智能设备Pocket

PC

2003设备应用程序中显示子窗体FMChild只能使用:

FMChild

fmChild

=

new

FMChild();

FMChildOwner

=

this;

fmChildShowDialog();

fmChildDispose();

在Visual

C#智能设备Pocket

PC

2003的设备应用程序中ShowDialog()没有重载。

参考资料:

>

以上就是关于qt 多窗体跳转问题全部的内容,包括:qt 多窗体跳转问题、Winform窗体跳转问题、用Visual Studio中的c#window应用程序如何做页面跳转等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9475615.html

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

发表评论

登录后才能评论

评论列表(0条)

保存