我在Qt有一个窗口,我正在画一幅画.现在我想把进度条放在它上面.我怎样才能做到这一点?..
我要遵循的步骤
创建一个窗口
在窗口的油漆事件中画画
然后创建QGridLayout布局,添加窗口
显示在它上面.
假设我想在图片窗口的一部分上添加进度条.我怎样才能做到这一点
我不认为它可以在窗口绘制事件中实现.
请帮助我
谢谢
有没有办法让网格布局中的单个元素占用网格中的多个位置.示例:我想创建一个占据整个网格行的文本框,有什么办法可以做到这一点吗?
有没有人获得支持库在Android 2中正确呈现网格布局?而不是2行和列我在屏幕上得到一行并在logcat输出中看到此错误:Android GridLayout无法找到方法android.support.v7.widget.ViewGroup.onChildVisibilityChanged
当我将布局标签从android.support.v7.widget.GridLayout更改为GridLayout时,Android4上的相同布局正在工作 - > ICS
这可能是设置的一些问题吗?我在Eclipse项目属性的Android选项卡中有gridlayout_v7库项目,而v.13 jar在构建路径上.
下面粘贴了失败的XML布局.我在图像按钮标记中明确添加了布局行和列,以便解决问题.如果有人在Android 2上运行支持库,请分享.
<android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnCount="2" android:rowCount="2"
android:gravity="center_vertical"
android:layout="@drawable/bg_test_main" >
<ImageButton android:id="@+id/btnSentence"
android:layout_row="0"
android:layout_column="0"
android:src="@drawable/testa_btn"
android:contentDescription="@string/spin_fill_in"
android:background="@android:color/transparent"
/>
<ImageButton android:id="@+id/btnAudio"
android:layout_row="0"
android:layout_column="1"
android:src="@drawable/testb_btn"
android:contentDescription="@string/audio_quiz"
android:background="@android:color/transparent"
/>
<ImageButton android:id="@+id/btnPickWord"
android:layout_row="1"
android:layout_column="0"
android:src="@drawable/testc_btn"
android:background="@android:color/transparent"
android:contentDescription="@string/def_pick_word" />
<ImageButton android:id="@+id/btnPickDef"
android:layout_row="1"
android:layout_column="1"
android:src="@drawable/testd_btn"
android:background="@android:color/transparent"
android:contentDescription="@string/pick_def" />
</android.support.v7.widget.GridLayout>
Run Code Online (Sandbox Code Playgroud) android grid-layout android-widget android-layout android-compatibility
我有这样的数据结构:
[
"category1": {
"name": "Cat 1",
"competences": [{
"name": "Comp 1",
"users": [{
"name": "user1",
"level": 99,
}, {
"name": "user2",
"level": 99,
},… {
"name": "userN",
"level": 9001,
}]
}, {
"name": "Comp 2",
"users": [{
"name": "user1",
"level": 99,
}, {
"name": "user2",
"level": 99,
},… {
"name": "userN",
"level": 9001,
}]
}]
},
"category2": {
"name": "Cat 2",
"competences": [{
"name": "Comp 3",
"users": [{
"name": "user1",
"level": 99,
}, {
"name": "user2",
"level": 99,
},… …Run Code Online (Sandbox Code Playgroud) 我认为在这种情况下,一张图片胜过千言万语:

XAML:
<Grid>
<ItemsControl ItemsSource="{Binding Persons}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Name}" Background="LightBlue"/>
<TextBlock Text="{Binding Age}" Background="LightPink" Grid.Column="1"/>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
Run Code Online (Sandbox Code Playgroud)
ps - 我不想为第一列设置一个特定的,但要给它所需的最大值.
更新: 我已经尝试过ColinE的链接并完成了这个:
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="A" Width="Auto"/>
<ColumnDefinition />
</Grid.ColumnDefinitions>
Run Code Online (Sandbox Code Playgroud)
但它对我没有用.
我试图从支持库中加入GridLayout,但它无法正常工作.我的目标版本是API版本10.我使用的XML代码如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:grid="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android.support.v7.widget.columnCount="6" >
<Button
android:id="@+id/button1"
android.support.v7.widget.layout_column="1"
android.support.v7.widget.layout_columnSpan="2"
android.support.v7.widget.layout_gravity="left"
android.support.v7.widget.layout_row="1"
android:text="Button" />
</android.support.v7.widget.GridLayout>
Run Code Online (Sandbox Code Playgroud)
当Eclipse尝试编译它时,给出的错误是:android.support.v7.widget.GridLayout无法实例化.堆栈跟踪是:
java.lang.NoClassDefFoundError: android/support/v7/gridlayout/R$dimen
at android.support.v7.widget.GridLayout.<init>(GridLayout.java:255)
at android.support.v7.widget.GridLayout.<init>(GridLayout.java:274)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.instantiateClass(ProjectCallback.java:402)
at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.loadView(ProjectCallback.java:166)
at com.android.layoutlib.bridge.android.BridgeInflater.loadCustomView(BridgeInflater.java:205)
at com.android.layoutlib.bridge.android.BridgeInflater.createViewFromTag(BridgeInflater.java:133)
at android.view.LayoutInflater.inflate(LayoutInflater.java:386)
at android.view.LayoutInflater.inflate(LayoutInflater.java:296)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:279)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:318)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:325)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderService.createRenderSession(RenderService.java:372)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1361)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1115)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.activated(GraphicalEditorPart.java:941)
at com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditorDelegate.delegatePageChange(LayoutEditorDelegate.java:585)
at com.android.ide.eclipse.adt.internal.editors.common.CommonXmlEditor.pageChange(CommonXmlEditor.java:360)
at org.eclipse.ui.part.MultiPageEditorPart$2.widgetSelected(MultiPageEditorPart.java:290)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:240)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
at …Run Code Online (Sandbox Code Playgroud) 确实,我实际上并没有在模拟器中进行攻击 - 因为我的开发机器没有启用触摸功能 - 但我不认为这是问题,因为我在网格中的点击应该触发事件.
这是我的xaml:
<Grid x:Name="grid1" Margin="24,0,0,0" Grid.Row="1" Tapped="Grid_OnTapped">
Run Code Online (Sandbox Code Playgroud)
......和我的代码:
private void Grid_OnTapped(object sender, TappedRoutedEventArgs args)
{
if (args.OriginalSource.Equals(grid1))
{
. . .
Run Code Online (Sandbox Code Playgroud)
我从来没有进入Grid_OnTapped事件.我错过了什么?
我正在Vaadin 6中完成我的项目.在那里,我已经在Grid布局中集成了组件.我附上了一张图片.它类似于我的项目布局.它类似于日食.因此,布局将在左侧和右侧有两个侧面板.以及中间和底部面板.而图像中的红色是按钮.当我按下它们时,面板将被最小化.我希望中心面板扩展并占据最小化面板的区域.我已经将面板集成在网格布局中.任何人都可以告诉我如何在网格布局中扩展组件.
当我最小化'R'; 'C'和'B'必须占据它的区域.
当我最小化'B'; 'C'必须占据它的区域.
当我最小化'L'; 'C'和'B'必须占据它的区域.

我有一个list(<ul />),我尝试显示为网格.该电池具有一个固定的宽度(假设100像素):然后cols和rows的数量取决于屏幕分辨率.
当屏幕宽度很大时,有很多列但很少行:
______________________________________________________________
| ___________ ___________ ___________ ___________ |
| | | | | | | | | |
| | #1 | | #2 | | #3 | | #4 | |
| |<- 100px ->| |<- 100px ->| |<- 100px ->| |<- 100px ->| |
| | | | | | | | | |
| |___________| |___________| |___________| |___________| |
| ___________ |
| | | |
| | #5 | | …Run Code Online (Sandbox Code Playgroud) 我的页面顶部有一个导航。其中我有 5 家不同公司的 5 只市场股票。我想以全宽显示 5,但随着窗口变小,我基本上想要的行为是切断溢出的窗口,并调整剩余窗口的大小以填充导航容器(所以假设在某些时候它只会显示 3 只股票并隐藏其他股票)。这是现在的代码:
.stocks-container {
display: grid;
grid-template-columns: repeat(auto-fit, 150px);
grid-template-rows:1fr;
grid-auto-rows: 0;
overflow-y: hidden;
justify-content: space-between;
width: 75%;
font-size: 11px;
overflow-y: hidden;
}
Run Code Online (Sandbox Code Playgroud)
目前这几乎就是我所需要的。问题是,现在溢出的库存项目(基本上应该创建一个新行)被挤在第一行的顶部。同样,我不希望他们创建新行或可滚动。我只是根本不想让他们出现。有任何想法吗?