怎样获取qtabelview的宽度

怎样获取qtabelview的宽度,第1张

两种方法:

外置scrollbar不需要改写其它信号槽,只要new出一个QScrollBar,

用xxxx->setVerticalScrollBar ( QScrollBar scrollBar );

tableView->verticalScrollBar()->setMinimumWidth(200);

在Oncreate中获取TextView的宽度

在onCreate()里是获取不到控件的width,height的,这个时候控件都没有measure,layout完毕,所以获取到的结果都是0。要获取控件的宽度、高度必须在measure、layout过程完毕之后。

有2种方法:

1如lss所讲的一样:

ViewTreeObserver vto = mBtnSendgetViewTreeObserver();

vtoaddOnGlobalLayoutListener(new OnGlobalLayoutListener() {

@Override

public void onGlobalLayout() {

int height = mBtnSendgetMeasuredHeight();

int width = mBtnSendgetMeasuredWidth();

Systemoutprintln("height:" + height + " " + "width:" + width);

}

});

2在Activity里重写方法

public void onWindowFocusChanged(boolean hasFocus);

在窗口第一次获得焦点的时候,肯定能获取到控件的width,height。

protected void onDraw(Canvas canvas){

final String s = "Hello I'm some text!";

Paint p = new Paint();

Rect bounds = new Rect();

psetTextSize(60);

pgetTextBounds(s, 0, slength(), bounds);

float mt = pmeasureText(s);

int bw = boundswidth();

Logi("LCG", Stringformat(

"measureText %f, getTextBounds %d (%s)",

mt,

bw, boundstoShortString())

);

boundsoffset(0, -boundstop);

psetStyle(StyleSTROKE);

canvasdrawColor(0xff000080);

psetColor(0xffff0000);

canvasdrawRect(bounds, p);

psetColor(0xff00ff00);

canvasdrawText(s, 0, boundsbottom, p);

}

dataGridViewColumns[i]Width就是可见宽度

你可以试试给它赋值,则显示的宽度会根据你的赋值改变

而且这个列宽度改变可以被ColumnWidthChanged事件捕捉到

当在界面观察时,明明看到TextView上的字体已经超出显示范围,却不发生自滚动。但是,你看到它超出,不一定真的超出哦。此篇文章告诉你,如何看实实在在的TextView的显示范围以及文本所占宽度。

TextPaint paint = mTvProgramNamegetPaint();

paintsetTextSize(mTvProgramNamegetTextSize());

// paintmeasureText(mTvProgramNamegetText()toString()); //这个方法能把文本所占宽度衡量出来

Logi(TAG, "getFocus paintmeasureText(mTvProgramNamegetText()toString())="

+ paintmeasureText(mTvProgramNamegetText()toString()));

mTvProgramNameaddOnLayoutChangeListener(new ViewOnLayoutChangeListener() {

@Override

public void onLayoutChange(final View v, final int left, final int top, final int right, final int bottom, final int oldLeft, final int oldTop, final int oldRight,

final int oldBottom) {

//在此,得到TextView控件的宽度

Logi(TAG, "onLayoutChange mTvProgramNamegetWidth()=" + vgetWidth());

}

});

获取屏幕的宽度和高度然后计算出你控件的大小,然后只进去就行了,,,如果全屏显示就设置LayoutParamsMATCH_PARENT如果自适应就设置LayoutParamsWRAP_CONTENT

int width = getScreenWidth/2;

int height = getScreenHeight/2;

imageView]setLayoutParams(new LayoutParams(width, height));

全屏

imageView]setLayoutParams(new LayoutParams(LayoutParamsMATCH_PARENT, LayoutParamsMATCH_PARENT));

自适应

imageView]setLayoutParams(new LayoutParams(LayoutParamsWRAP_CONTENT, LayoutParamsWRAP_CONTENT));

public int getScreenWidth() {

WindowManager wm = (WindowManager) sInstance

getSystemService(ContextWINDOW_SERVICE);

Display display = wmgetDefaultDisplay();

return displaygetWidth();

}

- (void)webViewDidFinishLoad:(UIWebView )webViewer{ CGFloat webViewHeight = [[webViewer stringByEvaluatingJavaScriptFromString:@"documentheight"]floatValue]; }

以上就是关于怎样获取qtabelview的宽度全部的内容,包括:怎样获取qtabelview的宽度、如何在Oncreate中获取TextView的宽度、如何快速获得TextView的宽度和高度使用Paint.getTextBounds等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/10159380.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存