622 سوال

629 پاسخ

855 نظر

242 کاربر

به سامانه پرسش و پاسخ کیوت خوش آمدید, این سامانه به شما امکان می دهد پرسشهای خود را طرح نموده و در کوتاهترین زمان ، پاسخ خود را دریافت نمایید.

-قبل از سوال پرسیدن حتما جست و جو کنید.

-در صورتی که سوالی به شما کمک کرد و یا جوابی ، حتما به آن امتیاز مثبت دهید.

-در صورتی که سوالی پرسیدید و جواب خود را گرفتید حتما جواب را به عنوان بهترین جواب انتخاب کنید.

-از ارسال چند سوال در یک تاپیک جدا خودداری کنید.

-نام مناسب برای سوالات انتخاب کنید.

-برچسب مناسب برای سوالات انتخاب کنید.

-برای نوشتن کد کافی است کد را از ادیتور خود کپی و در ادیتور سایت الصاق کنید و با انتخاب کد کلید CTRL+K را فشار دهید.

-حتما قوانین و نکات دیگر را از اینجا بخوانید.

چرا بعد از اضافه کردن PushButton به یک گرافیک ویو این شکلی میشه؟

+2 امتیاز
73 بازدید

سلام

این شکلی که من تست کردم توی کیوت 5.1 به طور معمولی نمیشه به یک QPushButton انیمیشن از QPropertyAnimation اعمال کرد و یک خطا میده.
برای این کار من Button را به یک QGraphicsView اضافه کردم و از خروجی اون که از نوع QGraphicsProxyWidget هست استفاده کردم برای انیمیشن دادن به ویجت

حالا مشکلی که دارم این هست که وقتی QPushButton را به گرافیکم اضافه میکنم و BorderRadius اون را تنظیم میکنم گوشه های اون به این شکل درمیاد.
کسی میدونه چرا؟
enter image description here

قسمتی از کد برنامه :

  graphicsScene = new QGraphicsScene();
  graphicsScene->setSceneRect(0,0,300,300);
  QGraphicsProxyWidget *p = graphicsScene->addWidget(lblName);


  graphicsView = new QGraphicsView(this);
  graphicsView->move(600,600);

  graphicsView->setScene(graphicsScene);
سوال شده شهریور 18, 1392 در Qt GUI  بوسیله ی amir00 ناظر (3,720 امتیاز)  
60% درصد پذیرش جواب ها

1 پاسخ

0 امتیاز
 
بهترین پاسخ

سلام
ببینید با این کد مشکلتون حل میشه :

QGraphicsScene *graphicsScene = new QGraphicsScene();
graphicsScene->setSceneRect(0,0,300,300);
QPushButton *btn = new QPushButton("salam");
btn->setAttribute(Qt::WA_NoSystemBackground,true);
btn->setStyleSheet("padding:5px;border:1px solid red;border-radius:10px;background:yellow;");
QGraphicsProxyWidget *p = graphicsScene->addWidget(btn);
p->setFlag(QGraphicsItem::ItemIsMovable);
graphicsScene->setBackgroundBrush(QBrush(QColor("black")));

QGraphicsView *graphicsView = new QGraphicsView;
graphicsView->move(600,600);

graphicsView->setScene(graphicsScene);
graphicsView->show();
پاسخ داده شده شهریور 18, 1392 بوسیله ی admin کیومن (23,310 امتیاز)  
انتخاب شده شهریور 19, 1392 بوسیله ی amir00
بسیار عالی بود. ممنون
با اضافه کردن btn->setAttribute(Qt::WA_NoSystemBackground,true); حل شد.
خواهش میکنم. در صورتی که جوابتون رو گرفتید باید تیک کنار جواب رو بزنید تا به عنوان بهترین جواب انتخاب بشه. اون تیک طوسی رنگ رو ! :)
...