QT笔记

1.菜单栏上的弹出窗口

voidMainWindow::on_new_action_triggered()
{
MyDialogmyDialog;//MyDialog是一个ui
myDialog.setModal(true);
myDialog.exec();
/*******上面的写法弹出的窗口挡住后面的窗口***********/
/*******下面的写法弹出的窗口不挡住后面的窗口,并且可以弹出多个****/
//myDialog=newMyDialog(this);
//myDialog->show();
}


2.水平布局&垂直布局

QWidget*window=newQWidget;
window->setWindowTitle("Layout测试");
QPushButton*button1=newQPushButton("one");
QPushButton*button2=newQPushButton("two");
QPushButton*button3=newQPushButton("three");
QHBoxLayout*hlayout=newQHBoxLayout;
hlayout->addWidget(button1);
hlayout->addWidget(button2);
hlayout->addWidget(button3);
window->setLayout(hlayout);
window->show();

wKioL1Nzc43RxUmAAABmPedd_k4814.jpg

QVBoxLayout*hlayout=newQVBoxLayout;//垂直布局

wKioL1Nzc-bjRFIlAABSqEd680s737.jpg

voidMainwindow::init(){
vBoxLayout=newQVBoxLayout(this);

topWidget=newQWidget;
topWidget->setStyleSheet("background:#FFCCCC");
topWidget->setMaximumHeight(50);
topWidget->setMinimumHeight(50);
vBoxLayout->addWidget(topWidget);

mainWidget=newQWidget;
mainWidget->setStyleSheet("background:#0099CC");

vBoxLayout->addWidget(mainWidget);

mainVBoxLayout=newQVBoxLayout(mainWidget);
//定义一个垂直布局,垂直布局放到mainWidget中
//MAX_XMAX_Y都在.h中预定义
for(inti=0;i<MAX_X;i++){
mainHBoxLayout[i]=newQHBoxLayout();//新建一个水平布局
for(intj=0;j<MAX_Y;j++){
buttons[i][j]=newQPushButton;
buttons[i][j]->setStyleSheet("background:black");
buttons[i][j]->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
//Expanding填充
mainHBoxLayout[i]->addWidget(buttons[i][j]);
//将每一行的button添加到水平布局
}
mainVBoxLayout->addLayout(mainHBoxLayout[i]);
//将水平布局添加到垂直布局中
}
}

wKioL1OEWjGB7FixAAG0BdoWs9U446.jpg


3.小球碰撞边框反弹算法

voidMainWindow::slotBallMove(){
//小球的坐标	
intmx=ball.x()+ball.width()/2;
intmy=ball.y()+ball.height();

if(my>=bat.y()){
if(mx>=bat.x()&&mx<=bat.x()+bat.width()){
dy=-1;
}
else{
timer.stop();
emitsignalGameOver();
}
}
elseif(x>this->width()-ball.width()){
dx=-1;
}
elseif(y<0){
dy=1;
}
elseif(x<0){
dx=1;
}

x+=dx;
y+=dy;
ball.move(x,y);

}

4.弹出的messageBox

QMessageBox::information(this,"提示","***GameOver***",QMessageBox::Ok);

5.设置ico图标

myapp.rc//放在项目目录下
IDI_ICON1ICONDISCARDABLE"appico.ico"
//然后在.pro文件中添加下面的语句
RC_FILE=myapp.rc

6.获取屏幕分辨率、计算机最佳显示位置,最小window大小

QDesktopWidget*desktopWidget=QApplication::desktop();
//获取可用桌面大小
QRectdeskRect=desktopWidget->availableGeometry();
//获取设备屏幕大小
QRectscreenRect=desktopWidget->screenGeometry();
intscreenX=screenRect.width();
intscreenY=screenRect.height();
intscreenCount=desktopWidget->screenCount();//可用的显示器数
intappWidth=1000;
intappHeight=618;
intx_p=screenX/2-appWidth/2;//计算出居中显示位置
inty_p=screenY/2-appHeight/2;
this->setGeometry(x_p,y_p,appWidth,appHeight);
this->setMinimumHeight(appHeight);
this->setMinimumWidth(appWidth);
qDebug()<<screenX<<screenY<<screenCount;


本文出自 “阿凡达” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/1411247

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值