
两种方法:
外置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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)