• 3759阅读
  • 7回复

[提问]Qscrollarea背景图片问题 [复制链接]

上一主题 下一主题
离线foxgod
 

只看楼主 倒序阅读 楼主  发表于: 2018-07-17
我在ui里面拖入了一个scrollarea ,在创建的widget里面又拖入了一个ui.widget,为什么我这是了主窗口qss后,我发现我拖入的scrollarea背景图片也是主界面的这个图片呢???? 而且我发现些用代码写,怎么出现不了这个效果?
代码如下:
  1. setWindowFlags(Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint);//无边框
  2.     setAttribute(Qt::WA_DeleteOnClose,true);
  3.     QDesktopWidget* desktopWidget = QApplication::desktop();
  4.        //获取可用桌面大小
  5.     QRect deskRect  = desktopWidget->availableGeometry();
  6.     m_nDesktopWidth = deskRect.width();
  7.     m_nDesktopHight = deskRect.height();
  8.     resize(m_nDesktopWidth,m_nDesktopHight);
  9.     ui->widget->resize(m_nDesktopWidth-20,m_nDesktopHight-75);
  10.     ui->widget->move(10,10);
  11.     //ui->widget->setStyleSheet("background-color:rgba(0,0,0,160)");
  12.     QPalette palette;
  13.     QPixmap pixmap(":/other/s.jpg");
  14.     QPixmap pix = pixmap.scaled(m_nDesktopWidth,m_nDesktopHight);
  15.     palette.setBrush(QPalette::Window, QBrush(pix));
  16.     setPalette(palette);
  17.      ui->scrollArea->setGeometry(10,10,m_nDesktopWidth-50,m_nDesktopHight-80);
  18.      ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);   // 设置垂直滚动条一直可见
  19.      ui->scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);   // 设置垂直滚动条一直可见
  20.      ui->scrollAreaWidgetContents->setMinimumSize(m_nDesktopWidth-20,4200);


离线never_forget

只看该作者 1楼 发表于: 2018-07-17
QSS 会自动继承的,在设计师中,子控件的 QSS 自动继承 父对象的~
离线foxgod

只看该作者 2楼 发表于: 2018-07-18
回 never_forget 的帖子
never_forget:QSS 会自动继承的,在设计师中,子控件的 QSS 自动继承 父对象的~ (2018-07-17 18:52) 

我用代码写QScrollArea,如何实现界面里面拖入的那个ui->scrollAreaWidgetContents呢,这个是控制滚动区域大小的是不??
离线foxgod

只看该作者 3楼 发表于: 2018-07-18
回 never_forget 的帖子
never_forget:QSS 会自动继承的,在设计师中,子控件的 QSS 自动继承 父对象的~ (2018-07-17 18:52) 

问个问题,我在scrollarea里面准备增加50个窗口,也增加了50个button,但是button的图片我这设置了setflat(true),button还是有的border,是怎么回事
代码如下:
QWidget* cWidget = new QWidget(ui->scrollAreaWidgetContents);
                 cWidget->setObjectName(widgetname);
                 cWidget->resize(330,420);
                 cWidget->move(x,y);
                 cWidget->setStyleSheet("#widget1{border-image:url(:/other/student.png)}");

                 QPushButton* cButton = new QPushButton(cWidget);
                 cButton->setObjectName(tp);
                 cButton->resize(28,28);
                 cButton->move(5,390);
                 cButton->setFlat(true);
                 cButton->setStyleSheet( "#tp1{border:0px solid red;border-image: url(:/other/listtp.png);}#tp1:pressed{border:0px;border-image: url(:/other/listtp1.png);}");
离线foxgod

只看该作者 4楼 发表于: 2018-07-18
回 never_forget 的帖子
never_forget:QSS 会自动继承的,在设计师中,子控件的 QSS 自动继承 父对象的~ (2018-07-17 18:52) 

如何让scrollarea里面的背景图片和主窗口的不一样呢
离线never_forget

只看该作者 5楼 发表于: 2018-07-19
回 foxgod 的帖子
foxgod:如何让scrollarea里面的背景图片和主窗口的不一样呢 (2018-07-18 14:33) 

让他们脱离父子关系就行!
离线never_forget

只看该作者 6楼 发表于: 2018-07-19
回 foxgod 的帖子
foxgod:问个问题,我在scrollarea里面准备增加50个窗口,也增加了50个button,但是button的图片我这设置了setflat(true),button还是有的border,是怎么回事
代码如下:
QWidget* cWidget = new QWidget(ui->scrollAreaWidgetContents);
      &nbs .. (2018-07-18 14:13) 

可能是跟QSS 存在冲突导致的
离线never_forget

只看该作者 7楼 发表于: 2018-07-19
回 foxgod 的帖子
foxgod:我用代码写QScrollArea,如何实现界面里面拖入的那个ui->scrollAreaWidgetContents呢,这个是控制滚动区域大小的是不?? (2018-07-18 09:08) 

这个你应该去问 文档,~
快速回复
限100 字节
 
上一个 下一个