• 3134阅读
  • 4回复

qlineEdit如何让文字在左上角对齐? [复制链接]

上一主题 下一主题
离线qazaq408
 

只看楼主 倒序阅读 楼主  发表于: 2017-03-23
对于一个QLineEdit来说,默认文字是左下对齐的,现在我希望文字是左上对齐,这该怎么设置?
  1. edits->setAlignment(Qt::AlignTop|Qt::AlignLeft);
我设置他的对齐方式为  上+左,但文字还是出现左下对齐

离线15145093145

只看该作者 1楼 发表于: 2017-03-23
没毛病,我就这么用的,也达到效果了, 你再看看你的代码~
离线qazaq408

只看该作者 2楼 发表于: 2017-03-23
回 15145093145 的帖子
15145093145:
没毛病,我就这么用的,也达到效果了, 你再看看你的代码~


  1. #include<QApplication>
  2. #include<QLineEdit>
  3. int main(int argc , char** argv)
  4. {
  5.   QApplication app(argc,argv);
  6.   QLineEdit A;
  7.   A.setAlignment(Qt::AlignTop);  //这里设置的对齐方式貌似没用
  8.   A.show();
  9.   return app.exec();
  10. }

上面是代码和程序图片,图片上我用红色画了条红线,我希望的效果是文字顶着状体,但仔细看文字和窗体最上的边框不是贴着的
离线15145093145

只看该作者 3楼 发表于: 2017-03-24
  帖着好看吗,为什么这么奇怪的需求
离线qazaq408

只看该作者 4楼 发表于: 2017-03-24
回 15145093145 的帖子
15145093145:
[表情]  帖着好看吗,为什么这么奇怪的需求

              是这样的,这个程序要求注释,现在用一个QLineEdit来作为输入框,输入完了再相同的位置放个QLabel来显示内容,再QLabel中,文字是盯着控件最上面显示的,二QLineEdit则是有段小小的空隙


              这样就引发了一个问题,当编辑完了只有用一个 QLabel放置原来QLineEdit的位置,但由于两者文字的位置略有不同(一个顶着窗体,一个上面有空隙),导致文字会出现移动

              为了解决这个问题,暂时用
  1. point = lineedit->pos()
  2. X = point.x() +Len;
  3. Y = point.y() + Len;
  4. label->move(X,Y);

    这种方式来解决,其中Len是个常量,用于弥补那段空隙,但是因为程序会在不同的机器上使用,显示器会有很多种,所以不知道所有的机器行不行

快速回复
限100 字节
 
上一个 下一个