qt4 宽带网络配置向导的半成品...
原本是不想把这半成品放上来的,但是看到置顶帖里又有人说键盘失效的问题,所以就忍不住放上来了。。。我极度厌恶键盘失效的问题,首次启动到欢迎界面就卡住实在太不友好了。。。
半成品而已,只是个框架,可以识别网卡等设备,但是应用部分没有写,最近没空了,有人要接么,这样就可以把首次启动的欢迎界面转到 X window 里了。 :wink:
支持:-D
stronghill也在写一个简单的修改ip的程序......:twisted: 唉,我正好在出差,机器还给坏了,估计下下周才能继续做 几个问题:
1、DefaultGatePage 配置的默认网关要修改哪个文件,是否是/etc/sysconfig/network-scripts/ifcfg-eth*文件?
2、StartCfgPage地方是否要有一个选择配置哪个网卡,亦或在最后来个循环配置多个网卡。
3、TCPIPInfoPage页面是否想要显示配置前的网卡信息,如果是这样的话,可否在ConclusionPage页面后再加一个TCPIPInfoPage(finished) 还没有翻译,打开源码看了看。 原帖由 haulm 于 2009-12-21 11:16 发表 http://www.linuxfans.org/bbs/images/common/back.gif
还没有翻译,打开源码看了看。
本来就是半成品。。。:mrgreen: nihui你现在正在做这个吗? 希望rc2 或者正式版中能加上这个。 我在accept里面处理field,在编译的时候出现错误。
void Wizard::accept()
{
QString defaultgateip=QWizard::field("defaultgateip").toString();
// finish TODO:
QDialog::accept();
}
$ make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/lib/qt4/mkspecs/linux-g++ -I. -I/usr/lib/qt4/include/QtCore -I/usr/lib/qt4/include/QtGui -I/usr/lib/qt4/include -I. -I. -o wizard.o wizard.cpp
wizard.cpp: In member function ‘virtual void Wizard::accept()’:
wizard.cpp:43: 错误:invalid use of incomplete type ‘struct QVariant’
/usr/lib/qt4/include/QtCore/qobject.h:66: 错误:forward declaration of ‘struct QVariant’
wizard.cpp:43: 警告:未使用的变量‘defaultgateip’
make: *** 错误 1
$
原帖由 zy_sunshine 于 2009-12-23 10:12 发表 http://www.linuxfans.org/bbs/images/common/back.gif
nihui你现在正在做这个吗? 希望rc2 或者正式版中能加上这个。
我现在没有做,最近两个月也不会做。。
楼上的错误只需在源文件里面加 #include <QVariant> 就能编译了。 我在考虑怎么做这个,但是有些地方非常棘手。现在就碰见一个。
如果我想要做一个多网卡的配置,每个网卡配置过程循环一次。
但是WizardPage不能往回跳转。所以页面不能重复用,这里有没有什么好的办法实现多网卡循环配置? 原帖由 zy_sunshine 于 2009-12-24 00:33 发表 http://www.linuxfans.org/bbs/images/common/back.gif
我在考虑怎么做这个,但是有些地方非常棘手。现在就碰见一个。
如果我想要做一个多网卡的配置,每个网卡配置过程循环一次。
但是WizardPage不能往回跳转。所以页面不能重复用,这里有没有什么好的办法实现多网卡循环配置? ...
http://doc.trolltech.com/4.6/qwizard.html
参考 Creating Non-Linear Wizards 一节的部分
创建枚举值,重写页面的 nextId() 函数,返回要跳转目标的页面枚举值。
:wink:
回复 11# nihui 的帖子
:shock: 枚举值,这么多年了,终于用到这个东西了。谢谢nihui:lol: QWizard::next: Page 1 already met如果枚举不能动态定义,页面不能动态添加,还是不能达到循环配置网卡,页面还是不能重复使用。
Creating Non-Linear Wizards这一节用的页面也都是事先定义好的,只是走的顺序不同。
看样Qt真的不是太灵活o,在动态方面。如C++一样。 initializePage() 可以改页面内容的啊:wink: nihui 你看看我这个写的可以不,功能看看就好,里面写稍微有些麻烦,感觉很丑:mrgreen:
而且改了你的页面次序和一点功能。
次序是这样的
int pagecount=1;
setPage(pagecount, new IntroPage );pagecount++;
setPage(pagecount, new NetCardPage );pagecount++;
for(int i=0; i < netcardList.count(); ++i){
setPage(pagecount, new StartCfgPage );pagecount++;
setPage(pagecount, new TCPIPInfoPage );pagecount++;
setPage(pagecount, new TCPIPCfgPage );pagecount++;//我把defaultgateway页面放到这里面了。
setPage(pagecount, new RootlessPage );pagecount++;
setPage(pagecount, new BootActivatePage );pagecount++;
setPage(pagecount, new ConclusionPage );pagecount++;
}
setPage(pagecount, new DNSCfgPage );pagecount++;//我把dns放到最后来配置,配置resolve.conf文件
setPage(pagecount, new ThanksPage );pagecount++;
setStartId(1);如果实现多循环配置,必须先new好页面,所以我就用了一个for循环......还加了几个全局变量在wizard.cpp页面
我是在windows下做的,因为linux下创建工程的时候竟然没有标准empty工程 ....我手生得很,所以又去windows了:mrgreen:
要修改的文件流都放在了QStringList lines;里面了,移到linux下只要把lines覆盖到文件就好了。
[ 本帖最后由 zy_sunshine 于 2009-12-24 14:52 编辑 ]