期基础就业课程23课件c qt案例教程_第1页
期基础就业课程23课件c qt案例教程_第2页
期基础就业课程23课件c qt案例教程_第3页
期基础就业课程23课件c qt案例教程_第4页
期基础就业课程23课件c qt案例教程_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

新建创建新项QtCreatorApplication QtWidgetsApplication- MyselfQQ创建列添加新文件,列表类“Qt”Qt设计师界面类,单击“Choose...”按钮;Widget,点击下一步DialogList(可以起其他名称)dialoglist.ui设计文件设计框列表按照下图所示,设计框的UI,该窗口的大小为250*700,其中的主要控件是QToolBox,修改该控件的currentItemText为“群成员QoolBox默认生成的第二页删Widget做布局操作,可以先利用一些测试控件放入到其中,然后Widgetlayout布局测试,main资源导(向项目中导入资源,对应九个按钮需要九张作为头像图标使用,搜集九张可用共享的资源或者自己收藏的,大小在80*80左右)(添加新文件–Qt–QtResource点击choose名称res 下一步,点击完成,生成res.qrc文 ,添加前缀添加文件–设置窗体标题和图设置标DrawersetWindowTitle(“MyselfQQ设置图设置列表中的按创建9个按钮存放QVector容器QVector<QToolButton*>vToolBtn;QVector<QToolButton*>vToolBtn;QtoolButtonfor(inti=0;i<9;i{QToolButton*btn=newQToolButton; btn- btn->setIconSize(QPixmap(":images/ftbz.png").size());btn- //设 透明效ui->vLayout->addWidget(btn);vToolBtn.push_back(btn);9}(替 ,改为不同的资设计界widget.ui730450,向界面控件类型和属性设各个控件设ToolBtn详细设其中前三个按钮,选中checkable属性其中所有的ToolBtn属性中的toolTIp依次更改为加粗、倾斜、下划线、更改字体颜色、保存和清空字体大小下拉框设58~22(QQ软件完全相同部件,点击+号按钮添加新项目如图currentIndex412TableWidget设属性选择为选择为关联按钮与聊天窗添加按钮点击//添加点击//添加点击for(inti=0;i<{{//qDebug()//此时,widget,(4.2)widget1:02:vToolBtn[i]->text()Widget*chatWidget=newWidget(0,vToolBtn[i]->text());}修改弹出框的构造函WidgetexplicitWidget(QWidget*parent,QStringusrname);测运行代码,点击窗口,弹出响应的4.6解决一个窗口多次弹出的dialogList.hQVector<bool>isShow;代表是否打开窗口的标识,false,truedialogList.cpp9for(inti=0;i<9{}修改点击,根据打开的标志位来判voidvoidcloseEvent(QCloseEventvoidvoidcloseEvent(QCloseEventvoidvoidWidget::closeEvent(QCloseEvent*{emitthis->widgetClose();}点击中再添加一行代实现基本聊天功widgetenumMsgType{Msg,UsrEnter,UsrLeft}聊天的方voidsndMsg(MsgTypetype);UDPvoidsndMsg(MsgTypetype);UDPvoidusrEnter(QStringusername);//voidusrLeft(QStringusrname,QStringtime);QStringgetUsr();//获取用户名QStringgetMsg();QUdpSocket*udpSocket;//udpqint16port;//端口QStringuName;void UDPwidget.cpp中实this->uNameusrname获取用户名udpSocket=newQUdpSocket(this);port=23333;udpSocket->bind(port,QUdpSocket::ShareAddress|QUdpSocket::ReuseAddressHint);//采ShareAddress模式(即允许其它的服务连接到相同的地址和端口,特别是用在多客户端监听同一个服务器端口等时特别有效)ReuseAddressHint模式(重新连接服务器)发送消息函数voidvoidWidget::sndMsg(MsgType{QByteArrayQDataStreamouttype<< switch(type){caseMsg: inText()=={}outcaseUsrEnter:caseUsrLeft:} 消息类型+用户}接受消息voidvoid{{QByteArrayQDataStreamin(&datagram,QIODevice::ReadOnly);intinmsgType;QStringusrName,msg;QStringtime=QDateTime::currentDateTime().toString("yyyy-MM-ddswitch(msgType){caseMsg:in>> ui->msgBrowser-ui->msgBrowser->setCurrentFont(QFont("TimesNewRoman",12));ui->msgBrowser->append("["+usrName+"]"+time);casein>>usrName;casein>>usrName;}}QString{return}QString{QStringmsg=ui->msgTxtEdit->toHtml();returnmsg;}voidvoidWidget::usrEnter(QString{boolisEmpty{QTableWidgetItem*usr=newui->msgBrowser->setCurrentFont(QFont("TimesNew 人新端点用户列表中就无法显示其他已 的用}}voidWidget::usrLeft(QStringusrname,QString{introwNum=ui->usrTblWidget->findItems(usrname,ui->msgBrowser->setCurrentFont(QFont("Timesui->msgBrowser->setCurrentFont(QFont("TimesNewRoman",ui->msgBrowser->append(QString("%1于%2离开!").arg(usrname).arg(time)); }重写离开 voidvoidWidget::closeEvent(QCloseEvent{emitthis->widgetClose();}connect(ui-{this-辅助字体设字号设void(QComboBox::*cbxSingal)(constQString&text)= void(QComboBox::*cbxSingal)(constQString&text)= connect(ui->sizeCbx,cbxSingal,this,[=](constQString&text){加{}{}倾下划设置文本颜colorQColorDialog::getColor(c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论