这周双休,本想自己用Qt写一个小的扫雷程序,结果啊,卡在了鼠标左键找对象,连片消除,的上面,做了一半做不动啊,但是成果不能白费,所以在此处总结一下我查资料后的的一些收获。
1、设置窗口背景图片
QPixmap pixmap = QPixmap(“F:/Qt/qt/untitled1/bg.png”).scaled(this->size());
QPalette palette(this->palette());//调色板类QPalette对象
palette.setBrush(QPalette::Background, QBrush(pixmap));//设置背景图片
2、多按键确定某一发送信号对象
QString msg=this->sender()->objectName();//得到发送者名字
QPushButton* pushButton=(QPushButton*)this->sender();//得到发送对象
3、消除按键显示
pushButton->setFlat(true);//边框消
4、鼠标右键信号处理
void Widget::mousePressEvent(QMouseEvent *e)
{
if(e->button()==Qt::RightButton)
{。。。。。。
}
}
5、设置按键背景图片
pushButton->setIcon(QPixmap(“F:/Qt/qt/untitled1/flag.png”));//设置按键背景图片,缩放
pushButton->setIconSize(QSize(40,40));//调整背景图片大小
取消按键背景图片
pushButton->setIcon(QIcon());//取消背景图片,图片为空
6、数码管计时显示
QTimer* timer=new QTimer();
connect(timer,SIGNAL(timeout()),this,SLOT(time_slot()));
timer->start(1000);//以ms为单位计时
void Widget::time_slot()
{
static int count=1;
QDateTime time = QDateTime::fromTime_t(count);//获取计时时间
QString strTime = time.toString(“yyyy-MM-dd hh:mm:ss”);//设置系统时间显示格式
ui->lcdNumber->display(strTime);//在lcdNumber上显示时间
count++;
}
7、获得控件坐标
ui->p1->x();
ui->p1->y();